var chatSystem =
{
  Settings: new Object(),
  Create: function(container)
  {
    var chatTarget = "http://embed.mibbit.com/index.html?";
    for(var setting in chatSystem.Settings)
    {
      chatTarget += setting + "=" + chatSystem.Settings[setting];
      chatTarget += "&amp;";
    }
    
    var nickname;
    if(chatSystem.Nick == "")
    {
      var queryString = _parseQueryString(window.location.search);
      
      if(typeof(queryString["nick"]) == "string" && queryString["nick"] != "")
      {
        nickname = queryString["nick"];
      }
      else
      {
        nickname = chatSystem.NickPrefix + nicknameSuffix();
      }
    }
    else
    {
      nickname=chatSystem.Nick;
    }

    chatTarget += "nick=" + nickname;
    
    // alert(chatTarget);
    
    var chatIframe = document.createElement("iframe");
    chatIframe.setAttribute("src", chatTarget);
    container.appendChild(chatIframe);
    
    function nicknameSuffix()
    {
      var suffix = Math.floor(Math.random()*8999) + 999;
      return suffix.toString();
    }
    
    function _parseQueryString(input)
    {
      var _output = new Object();
      
      if(typeof(input) != "string" || input == "")
      {
        return _output;
      }
      
      if(input.charAt(0) == "?")
      {
        input = input.slice(1);
      }
      
      var _key, _data, _found = 0, _inputArray = input.split("&"), _i, _elements;
      for(_i = 0; _i < _inputArray.length; _i++)
      {
        if(_inputArray[_i] != "")
        {
          _elements = _inputArray[_i].split("=");
          if(_elements.length == 2)
          {
            _key = _urlDecode(_elements[0]);
            _data = _urlDecode(_elements[1]);
            _output[_key] = _data;
            _found ++;
          }
        }
      }
      return _output;
    }
    
    function _urlDecode(input)
    {
      var _output = input, _escChar, _match, _escCodes = /(%[^%]{2})/;
      
      _output = _output.replace(/\+/g, " ");
      
      while(_match = _escCodes.exec(_output) &&
            _match != null &&
            _match.length > 1 && _match[1] != "")
      {
        _escChar = String.fromCharCode(parseInt(_match[1].substr(1),16));
        _output = _output.replace(_match[1], _escChar);
      }
      return _output;
    }
  },
  NickPrefix: "guest_",
  Nick: ""
}

window.onload = function()
{
  createHeaderToggle();
  
  function createHeaderToggle()
  {
    var header = document.getElementById("header");
    var show = document.getElementById("show-header");
    var hide = document.getElementById("hide-header");
    
    show.onclick = function()
    {
      header.style.display = "block";
      hide.style.display = "block";
      show.style.display = "none";
    }
    
    hide.onclick = function()
    {
      header.style.display = "none";
      show.style.display = "block";
      hide.style.display = "none";
    }
    
    show.style.display = "none";
  }
  
  var chatContainer = document.getElementById("chat-container");
  chatSystem.Create(chatContainer);
}