<?xml version="1.0" encoding="utf-8"?>
<mx:Application    layout="vertical"
    xmlns:mx="http://www.adobe.com/2006/mxml"
    xmlns:rtc="AfcsNameSpace"
 viewSourceURL="srcview/index.html">
    <mx:Script>
        <![CDATA[
            import mx.controls.Label;
            import com.adobe.rtc.messaging.UserRoles;
            import mx.controls.Alert;
            import com.adobe.rtc.events.SessionEvent;

            // état de la session
            private var isConnected:Boolean = false;

            // à chaque évenement de synchronisation de la session
            // connexion, deconnexion, changement d'état de salon, ...
            private function onSynchro( e:SessionEvent ):void
            {
                // une fois que l'application parvient à se connecter / synchroniser
                if ( sessionManager.isSynchronized && !isConnected )
                {
                    Alert.show("Application connectée");

                    isConnected = true ;

                    removeChild( logPanel );

                } else if ( ! sessionManager.isSynchronized && isConnected ){
                    // si la connexion est perdue
                    isConnected = false ;

                    /* supprime le container de session
                    *  » il semble que dans cette version certains pods une fois déconnectés n'arrivent pas à se reconnecter.
                    *
                    *  » Pour se reconnecter, il faudra donc :
                    *         - soit forcer le rechargement de la page
                    *          - recréer dynamiquement le gestionnaire de sessionet ses pods
                    */
                    removeChild( sessionManager );

                    // affichage d'un message de sortie de salon
                    Alert.show( 'vous avez quitté la réunion, recharger la page pour entrer à nouveau');
                }
            }

            // fonction d'identification
            private function login ( login:String, password:String ):void
            {
                // remplissage du composant AdobeHSAutenticator
                identificator.userName = login;

                // si password défini : connexion en tant que "hôte"
                // sinon connexion en tant qu'invité
                identificator.password = password ;

                // connexion du gestionnaire de session
                sessionManager.login();
            }

            // deconnexion
            // il semble qu'avec cette version (0.9), la plupart des pods, une fois déconnectés, ne peuvent être reconnectés.
            private function logout():void
            {
                sessionManager.logout();

                // close() est censé provoquer une déconnexion et la suppression de tous les noeuds enfants, mais ne semble pas encore marcher...
                //sessionManager.close();
            }
        ]]>
    </mx:Script>

    <!-- Formulaire d'identification -->
    <mx:Panel id="logPanel" >
        <mx:Form>
            <mx:FormItem label="Identifiant">
                <mx:TextInput id="chp_login"
                    />
            </mx:FormItem>
            <mx:FormItem label="Se connecter en tant que :" direction="horizontal"
                >
                <mx:RadioButtonGroup id="userRole" />
                <mx:RadioButton id="isGuest" groupName="userRole"
                    label="Invité" selected="true" value="{UserRoles.VIEWER}"/>
                <mx:RadioButton id="isOwner" groupName="userRole"
                    label="Hôte" value="{UserRoles.OWNER}" selected="true"/>

            </mx:FormItem>
            <mx:FormItem label="Mot de passe"
                enabled="{ userRole.selectedValue == UserRoles.OWNER }">
                <mx:TextInput id="chp_password"
                    displayAsPassword="true"
                    />
            </mx:FormItem>
            <mx:FormItem >
                <mx:Button label="Entrer"
                    click="login(chp_login.text , userRole.selectedValue == UserRoles.OWNER ? chp_password.text : null  )"
                    />
            </mx:FormItem>
        </mx:Form>
    </mx:Panel>

    <!-- Container Gestionnaire de session -->
    <rtc:ConnectSessionContainer id="sessionManager" width="100%" height="100%" backgroundColor="#FFFFFF"
        authenticator="{identificator}" autoLogin="false"
        roomURL="http://connectnow.acrobat.com/votreCompte/nomSalon"
        synchronizationChange="onSynchro( event )"
        >

        <!-- PODS -->
        <mx:VBox width="50%" height="100%" horizontalAlign="center">

            <rtc:WebCamera id="webcam" width="300" />

            <rtc:SimpleChat id="chat" width="100%" height="100%" />

        </mx:VBox>

        <mx:VBox width="50%" height="100%" horizontalAlign="center" right="0">

            <mx:Button label="Déconnexion" click="logout()" />

            <rtc:FileShare id="fileManager" width="100%" height="50%" />

            <rtc:Note id="notes" width="100%" height="50%" />
        </mx:VBox>

    </rtc:ConnectSessionContainer>

    <!-- Composant d'authentification-->
    <rtc:AdobeHSAuthenticator id="identificator"
        authenticationSuccess="Alert.show('identification réussie')"
        authenticationFailure="Alert.show('échec d\'identification')"
    />

</mx:Application>