<?xml version="1.0" encoding="UTF-8" ?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License.  You may obtain a copy of the License at
  
      http://www.apache.org/licenses/LICENSE-2.0
          
  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT 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="isCluster" value="false" type="boolean" />

<!--
#############################################################
    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="timeZonesLoaded" type="boolean" value="false"/>
<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="canVideo" 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>
