<Module>
  <ModulePrefs title="Gpuls Test">
   <Require feature="rpc"/>
  </ModulePrefs>

  <Content type="html">
  <![CDATA[
  
    <script type="text/javascript"
        src="http://wave-api.appspot.com/public/wave.js"></script>

    <script type="text/javascript">

    function btnGetVersionInfoClicked()
    {
        // Currently get always returns a string:
        var value = wave.getState().get('getVersionCount', 0);
        value++;
        wave.getState().submitDelta({'getVersionCount': value});
    }
  
    function btnLoginClicked() 
    {
        // Change wave content. Notify, that we're logged in
        wave.getState().submitDelta({'loggedIn': 1});        
    } 

    function btnLogoutClicked() 
    {
        // Change wave content. Clear all counters on logout
        wave.getState().submitDelta({'loggedIn' : 0, 'getVersionCount' : 0});
    }     

    function updateBtnState(btnName, state)
    {
        document.getElementById(btnName).disabled = state;
    }

    function updateButtonsStates()
    {
        // Check if we're Logged in
        var loggedIn = wave.getState().get('loggedIn', 0);

        // Allow Logout and Get Version actions if logged in
        if (loggedIn == 1)
        {
            updateBtnState('btnGetVersionInfo', '');
            updateBtnState('btnLogout', '');
            updateBtnState('btnLogin', 'disabled');
        }
        else
        {
            updateBtnState('btnGetVersionInfo', 'disabled');
            updateBtnState('btnLogout', 'disabled');
            updateBtnState('btnLogin', '');
        }
    }

    function waveStateUpdated()
    {
        updateButtonsStates();
        var value = wave.getState().get('getVersionCount', 0);
        document.getElementById('txtAction').value = "Get Version action was requested " + value + " times";
    }

    function main()
    {
        if (wave && wave.isInWaveContainer()) 
        {
            // Register state callback function
            wave.setStateCallback(waveStateUpdated);
        }
    }

    gadgets.util.registerOnLoadHandler(main);

    </script>

    <table border=3>
        <th colspan=5 bgcolor="gray">Gplus panel</th>
        <tr>
            <td><button id="btnLogin" onclick="btnLoginClicked()">Login</button></td>
            <td><button id="btnLogout" onclick="btnLogoutClicked()">Logout</button></td>
            <td colspec=5></td>
            <td><button id="btnGetVersionInfo" onclick="btnGetVersionInfoClicked()">Get version</button></td>
        </tr>
        <tr>
            <td colspan=5>
                <input name="txtAction" type="Text" border=0 size=50 value="No actions were executed..."/>
            </td>
        </tr>
    </table>

 ]]>
  </Content>
</Module>
