
  function toggleRegisterBox ( id ) {
    if( Element.hasClassName($(id),'visible'))
      Element.removeClassName($(id),'visible');
    else
      Element.addClassName($(id),'visible');
  }

var RegisterForm = {
  checkUsername: function(usernameInputId)
  {
    var _this = this;
    this.usernameInputField = usernameInputId ? $(usernameInputId) : this.username;
    var sUsername = escape(this.usernameInputField.value);

    if (Element.visible($('usernameError')))
    {
      Element.hide($('usernameError'));
    }

    new Ajax.Request('/ZDFforum/api/registrierung/',
    {
      method: 'get',
      parameters:
      {
        command: 'check_username',
        username: sUsername
      },
      onSuccess: function(res)
      {
        switch(res.responseText)
        {
          case '1':
            _this.suggestUsername(sUsername);
            break;

          case '3':
            $('usernameErrorUsername').innerHTML = '';
            $('usernameErrorUsername').appendChild(document.createTextNode(sUsername));
            Element.show($('usernameError'));
            break;

          default:
          _this.submit();
            break;
        }


      }
    }

    );
  },
  suggestUsername: function(psUsername)
  {
    var _this = this;

    new Ajax.Request('/ZDFforum/api/registrierung/',
    {
      method: 'get',
      parameters:
      {
        command: 'suggest_username',
        username: psUsername
      },
      onSuccess: function(res)
      {
        eval('var oJSON = ' + res.responseText );

        var suggestionList = $('usernameSuggestList');

        var ul = document.createElement('ul');
        suggestionList.innerHTML = '';
        for (i = 0, l = oJSON.length; i < l; ++i)
        {
          if (i == 3)
          {
            suggestionList.appendChild(ul);
            var ul = document.createElement('ul');
          }
          var li = document.createElement('li');
          var username = unescape(oJSON[i]);

          if (document.all)
          {
            // Our market leaders market leading product needs
            // this crappy workaround, making clean DOM scripting
            // a yet unresolved dream. Sad. Sad. Sad. 
            var oInput = document.createElement('<input type="radio" name="usernameSuggestion" id="usernameSuggestion_' + i + '" value="'+ username + '" />');
          }
          else
          {
                var oInput     = document.createElement('input');
                oInput.type    = 'radio';
                oInput.name    = 'usernameSuggestion';
                oInput.id      = 'usernameSuggestion_' + i;
                oInput.value   = username;
          }

          li.appendChild(oInput);



          var oLabel     = document.createElement('label');
          oLabel.htmlFor = oInput.id;
          oLabel.appendChild(document.createTextNode(oInput.value));

          li.appendChild(oLabel);

          ul.appendChild(li);

          /* Pretty version: IE doesnt like this
          Event.observe(oInput, 'click', function(e) {
            _this.acceptSuggestion(Event.element(e));
          });
          */
          // Ugly version: IE likes ugly
	  oInput.onclick = function(e) {
            _this.acceptSuggestion(this);
          };
        }
        suggestionList.appendChild(ul);
        $('usernameSuggestUsername').innerHTML = '';
        $('usernameSuggestUsername').appendChild(document.createTextNode(psUsername));
        Element.show($('usernameSuggest'));
      }
    }
    );
  },
  acceptSuggestion: function(poUsernameInput)
  {
    this.usernameInputField.value = poUsernameInput.value;
  },
  resetForm: function()
  {
    Element.hide($('usernameSuggest'));
    Element.hide($('usernameError'));
    
    this.reset();
  }

}

