///////////////////////////////////
//         ajax im 3.41          //
//    AJAX Instant Messenger     //
//   Copyright (c) 2006-2008     //
//    http://www.ajaxim.com/     //
//   Do not remove this notice   //
///////////////////////////////////

/**
 * Class to handle roomlist events
 *
 * @author Daniel Howard
 **/
var Roomlist = {  
   roomListWin: null,  // room list window

   /**
    * Process the creation of the room list window
    *
    * @author Daniel Howard
    **/
   create: function() {
      Event.observe(window, 'resize', Roomlist.fixRoomList);
      
      if(!$('bl')) {
         this.roomListWin = new Window({id: 'bl', className: "dialog", width: 210, height: (Browser.height() - 60), zIndex: 100, recenterAuto: false, resizable: false,  title: 'Room List', draggable: true, closable: false, maximizable: false, detachable: false, minWidth: 205, minHeight: 150, showEffectOptions: {duration: 0}, hideEffectOptions: {duration: 0}});
         this.roomListWin.setConstraint(true, {left: 0, right: 0, top: 0, bottom: 0});
      }
      
      this.roomListWin.getContent().innerHTML = '<div id="blTopToolbar"><span class="toolbarButton">' +
                                                  '<img id="joinroom" src="themes/'+theme+'/window/joinroom.png" class="toolbarButton" onclick="Dialogs.newRoom();" alt="Create Room" title="Create Room" onmouseover="buttonHover(this);" onmouseout="buttonNormal(this);" onmousedown="buttonDown(this);" onmouseup="buttonNormal(this);"/>' +
                                                  '<span class="toolbarButton"><img id="changepassword" src="themes/'+theme+'/window/changepassword.png" class="toolbarButton" onclick="Dialogs.changeSettings();" alt="' + Languages.get('changeSettingsButton') + '" title="' + Languages.get('changeSettingsButton') + '" onmouseover="buttonHover(this);" onmouseout="buttonNormal(this);" onmousedown="buttonDown(this);" onmouseup="buttonNormal(this);" /></span>' +
                                                  '<span class="toolbarButton"><img id="toggleaudio" src="themes/'+theme+'/window/audio_'+(audioNotify ? 'on' : 'off')+'.png" onclick="toggleAudio();" alt="' + Languages.get('toggleSoundButton') + '" title="' + Languages.get('toggleSoundButton') + '" /></span>' +
                                                  '</div><div id="blContainer"><ul id="buddylist" class="sortable box"><li style="display:none"></li></ul></div><div id="blBottomToolbar"><a href="#" style="-moz-outline-style: none;" onclick="System.logout();return false;"><img src="themes/'+theme+'/window/signoff.png" style="border:0;" alt="' + Languages.get('signOff') + '" onmouseover="buttonHover(this);" onmouseout="buttonNormal(this);" onmousedown="buttonDown(this);" onmouseup="buttonNormal(this);" /></a></div>';
      Event.observe(this.roomListWin.getContent(), 'contextmenu', function() { return false; });
      
      $('bl_minimize').setStyle({left: (this.roomListWin.getSize()['width'] - 21) + 'px'});
      
      this.sizeRoomList();
      
      this.roomListWin.showCenter(false, (((Browser.height()-40) / 2) - (this.roomListWin.getSize()['height'] / 2)), (buddyListLoc == 0 ? 10 : (Browser.width() - this.roomListWin.getSize()['width'] - 10)));
      this.roomListWin.toFront();
      
      ChatroomList.get($('buddylist'));
   },
   
   /**
    * Destroy the room list window
    *
    * @author Daniel Howard
    **/
   destroy: function() {
      this.roomListWin.destroy();
   },
   
   /**
    * Add a room to the room list window
    *
    * @arguments
    *   username - user to add
    *
    * @author Joshua Gross
    **/
   addRoom: function(room) {
      var hexmd5 = hex_md5(room);
      var toAdd = $('chatroom_list_' + hexmd5);
      if(toAdd == null)
         $('join_room_ul').innerHTML += '<li id="chatroom_list_' + hexmd5 + '" class="buddy" style="padding-left:1%;" onmousedown="ChatroomList.clickRoom(\'' + room + '\');return false;" onmouseover="ChatroomList.selectRoom(this, \'' + room + '\', true);" onmouseout="ChatroomList.selectRoom(this, \'' + room + '\', false);" ondblclick="Dialogs.joinRoom(\'' + room + '\');">' + room + '</li>';
   },
   
   /**
    * Remove a room from the room list window
    *
    * @arguments
    *   username - user to remove
    *
    * @author Joshua Gross
    **/
   deleteRoom: function(room) {
      var hexmd5 = hex_md5(room);
      var toDelete = $('chatroom_list_' + hexmd5);
      if(toDelete != null)
         toDelete.parentNode.removeChild(toDelete);
   },

   /**
    * Reposition roomlist
    *
    * @author Joshua Gross
    **/
   fixRoomList: function() {
      if(Roomlist.roomListWin.isVisible()) {
         Roomlist.roomListWin.setSize(210, (Browser.height() - 60));
         Roomlist.roomListWin.setLocation((((Browser.height()-40) / 2) - (Roomlist.roomListWin.getSize()['height'] / 2)), (buddyListLoc == 0 ? 10 : (Browser.width() - Roomlist.roomListWin.getSize()['width'] - 10)));
         Roomlist.sizeRoomList();
      }
   },

   /**
    * Resize room list window
    *
    * @author Joshua Gross
    **/
   sizeRoomList: function() {
      $('blContainer').setStyle({width:  (this.roomListWin.getSize()['width'] - 8) + 'px',
                                 height: (this.roomListWin.getSize()['height'] - 95) + 'px'});
                                 
      $('blBottomToolbar').setStyle({width:  (this.roomListWin.getSize()['width'] - 8) + 'px',
                                     top:    (this.roomListWin.getSize()['height'] - 7) + 'px'});

      $('bl_minimize').setStyle({left: (this.roomListWin.getSize()['width'] - 21) + 'px'});                                     
   }

};
