//////////////////////////////////////////
//           ajaximrpg 5.00             //
//       AJAX Instant Messenger         //
//  Copyright (c) 2006-2008, 2010-2012  //
//      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: 'Profile', 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="' + Languages.get('joinChatroomButton') + '" title="' + Languages.get('joinChatroomButton') + '" onmouseover="buttonHover(this);" onmouseout="buttonNormal(this);" onmousedown="buttonDown(this);" onmouseup="buttonNormal(this);"/></span>' +
         '<span class="toolbarButton toolbarSpacer"><img id="addbuddy" src="themes/'+theme+'/window/addbuddy.png" class="toolbarButton" onclick="Dialogs.newBuddy();" alt="' + Languages.get('addBuddyButton') + '" title="' + Languages.get('addBuddyButton') + '" onmouseover="buttonHover(this);" onmouseout="buttonNormal(this);" onmousedown="buttonDown(this);" onmouseup="buttonNormal(this);" /></span>' +
         '<span class="toolbarButton toolbarSpacer"><img id="removebuddy" src="themes/'+theme+'/window/removebuddy.png" class="toolbarButton" onclick="Dialogs.removeBuddy();" alt="' + Languages.get('removeBuddyButton') + '" title="' + Languages.get('removeBuddyButton') + '" onmouseover="buttonHover(this);" onmouseout="buttonNormal(this);" onmousedown="buttonDown(this);" onmouseup="buttonNormal(this);" /></span>' +
         '<span class="toolbarButton"><img id="imanyone" src="themes/'+theme+'/window/imanyone.png" class="toolbarButton" onclick="Dialogs.newIM();" alt="' + Languages.get('IMAnyoneButton') + '" title="' + Languages.get('IMAnyoneButton') + '" onmouseover="buttonHover(this);" onmouseout="buttonNormal(this);" onmousedown="buttonDown(this);" onmouseup="buttonNormal(this);" /></span>' +
         '<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>' +
         (typeof(Status) != 'undefined' ? '<div id="statusSettings"><input type="text" id="customStatus" onkeypress="Status.processCustomAway(event);" style="display:none" onblur="if ($(\'customStatus\').style.display != \'none\') { $(\'customStatus\').style.display = \'none\'; $(\'curStatus\').style.display = \'block\'; }" /><a href="#" id="curStatus" onclick="Status.toggleStatusList();return false;">' + Languages.get('available') + '</a></div>' : '') +
         '</div><div id="blContainer"><ul id="roomlist" class="sortable box"><li style="display:none"></li></ul><ul id="buddylist" class="sortable box"><li style="display:none"></li></ul></div><div id="blBottomToolbar"><a href="#" style="-moz-outline-style: none;" onclick="Dialogs.login();return false;"><img src="themes/'+theme+'/window/signon.png" style="border:0;" alt="' + Languages.get('signOn') + '" onmouseover="buttonHover(this);" onmouseout="buttonNormal(this);" onmousedown="buttonDown(this);" onmouseup="buttonNormal(this);" /></a>&nbsp;<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)), (roomListLoc == 0 ? 10 : (Browser.width() - this.roomListWin.getSize()['width'] - 10)));
      this.roomListWin.toFront();
      
      this.list = {}; // list of group/user stuff
      this.listObjects = {}; // list of users in buddy list
      this.blocked = {};
      
      this.addGroup('Offline');

      ChatroomList.get($('roomlist'));
   },
   
   /**
    * 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 roomname = room;
     var roomparts = room.split('_');
     if (roomparts[0] == 'im') {
        roomname = (roomparts[1] == user)? roomparts[2]: roomparts[1];
     }
     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 + '\');">&nbsp;&nbsp;&nbsp;&nbsp;<img src="themes/' + theme + '/online.png" alt="" />&nbsp;' + roomname + '</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);
   },

   /**
    * Add new buddy to the list
    *
    * @arguments
    *   username - user's username
    *   groupname - group the user is in
    *
    * @author Joshua Gross
    **/
   addNewBuddy: function(username, groupname) {
      username = username;
      if (!inArray(Roomlist.list, username) && (!Roomlist.listObjects[username] || !$(Roomlist.listObjects[username].obj))) {      
         var xhConn = new XHConn();
         
         xhConn.connect(pingTo, "POST", "call=isuser&username="+username, function(xh) {
            if (xh.outputText == 'not_exists') {
               $('newbuddy_error_msg').innerHTML = Languages.get('noSuchUser');
            } else {
               if (!$(groupname.replace(/\s/, '_') + '_group')) {
                  Roomlist.addGroup(groupname);
                  Roomlist.list[groupname] = [];
               }
               
               Roomlist.addBuddy(username, groupname, 'none');
               
               if (parseInt(xh.outputText) == Status.offline) {
                  Roomlist.moveBuddy(username, 'Offline');
                  $(Roomlist.listObjects[username].img).src = 'themes/' + theme + '/offline.png';
               } else if (parseInt(xh.outputText) == Status.away) {
                  Roomlist.moveBuddy(username, groupname);
                  $(Roomlist.listObjects[username].img).src = 'themes/' + theme + '/away.png';            
               } else {
                  Roomlist.moveBuddy(username, groupname);
                  $(Roomlist.listObjects[username].img).src = 'themes/' + theme + '/online.png';
               }
               
               Roomlist.list[groupname][username] = {'username': username, 'blocked': false, 'status': parseInt(xh.outputText)};
         
               var xhConn = new XHConn();
               xhConn.connect(pingTo, "POST", "call=addbuddy&username="+username+'&group='+groupname, null);
               
               Windows.close('newBuddy');
            }
         });
      } else {
         $('newbuddy_error_msg').innerHTML = Languages.get('alreadyOnBuddylist');
      }
   },

   /**
    * Add buddy to the list
    *
    * @arguments
    *   username - username of the buddy we're adding
    *   groupname - the group the buddy is in
    *   buddyicon - the buddy's buddyiocn
    *
    * @author Joshua Gross
    * update Benjamin Hutchins
    **/
   addBuddy: function(username, groupname, buddyicon) {  
      if (!$(groupname.replace(/\s/, '_') + '_group')) this.addGroup(groupname);
      var groupList = $(groupname.replace(/\s/, '_') + '_group');
      var iconsrc = (buddyicon=='none'?defaultIcon:pathToIcons+username+'.'+buddyicon);
   
      var randId = Math.floor(Math.random()*1000000000);
      while($(randId + '_blItem'))
         randId = Math.floor(Math.random()*1000000000);
   
      groupList.innerHTML += '<li id="'+randId+'_blItem" class="buddy'+(useIcons && showInList ? " buddyicon" : "")+'" onmousedown="Roomlist.clickBuddy(event, \''+username+'\');return false;" onselectstart="return false;" onmouseover="Roomlist.selectBuddy(this, \''+username+'\', true);" onmouseout="Roomlist.selectBuddy(this, \''+username+'\', false);" ondblclick="Roomlist.onBuddyDblClick();">' + (useIcons&&showInList?(defaultIcon==""&&buddyicon=='none'?'':'<img class="blIcon" src="'+iconsrc+'" alt="" id="'+randId+'_blIcon" />'):'') + '&nbsp;&nbsp;&nbsp;&nbsp;<img src="themes/' + theme + '/online.png" alt="" id="'+randId+'_blImg" />&nbsp;'+username+'</li>';
      
      Roomlist.listObjects[username] = {};
      Roomlist.listObjects[username].obj  = randId + '_blItem';
      Roomlist.listObjects[username].img  = randId + '_blImg';
      Roomlist.listObjects[username].icon = buddyicon;
      Roomlist.listObjects[username].group = groupname;
      
      $(Roomlist.listObjects[username].obj).setStyle({listStyleType: 'none'});
   },
  
  build: function(response) {
    // get a list of buddies that are blocking this user
    if (response.blocked && (response.blocked.length > 0)) {
      var blockList = response.blocked.evalJSON(true);
      Roomlist.blocked = blockList;
    } else {
      Roomlist.blocked = {};
    }
    if (response.buddy && (response.buddy.length > 0)) {
      var budList = response.buddy.evalJSON(true);
      for (var group in budList) {
        if (!$(group.replace(/\s/, '_')+'_group')) {
          Roomlist.addGroup(group);
        }
        if (!Roomlist.list[group]) {
          Roomlist.list[group] = {};
        }
        for (i=0; i<budList[group].length; i++) {
          var buddy = budList[group][i];
          Roomlist.list[group][buddy.username] = {'username': buddy.username, 'blocked': (Roomlist.blocked.inArray(buddy.username) ? true : false), 'status': buddy.is_online, 'icon': buddy.icon};
          if (typeof(Roomlist.listObjects[buddy.username]) == 'undefined') {
            Roomlist.addBuddy(buddy.username, group, buddy.icon);
          }
          $(Roomlist.listObjects[buddy.username].obj).setStyle({display: 'block'});
          if (!blockedBuddyStatus && Roomlist.list[group][buddy.username].blocked) {
            Roomlist.moveBuddy(buddy.username, Languages.get('offline'));
            $(Roomlist.listObjects[buddy.username].img).src = 'themes/' + theme + '/blocked.png';
          } else {
            if ((buddy.is_online == Status.offline) || (buddy.is_online == Status.invisible)) {
              Roomlist.moveBuddy(buddy.username, Languages.get('offline'));
              $(Roomlist.listObjects[buddy.username].img).src = 'themes/' + theme + '/offline.png';
            } else if (buddy.is_online == Status.away) {
              Roomlist.moveBuddy(buddy.username, group);
              $(Roomlist.listObjects[buddy.username].img).src = 'themes/' + theme + '/away.png';            
            } else {
              Roomlist.moveBuddy(buddy.username, group);
              $(Roomlist.listObjects[buddy.username].img).src = 'themes/' + theme + '/online.png';
            }
            if (Roomlist.list[group][buddy.username].blocked == true) {
              $(Roomlist.listObjects[buddy.username].img).src = 'themes/' + theme + '/blocked.png';
            }
          }
        }
      }
    }
  },

  /**
   * Add a user to the chatroom user list
   *
   * @arguments
   *   username - user to add
   *
   * @author Joshua Gross
   **/
  setUserStatus: function(username, status) {
    if (typeof(Roomlist.listObjects[username]) == 'undefined') {
      return;
    }
    var src = null;
    var group = Roomlist.listObjects[username].group;
    if (status == Status.offline) {
      Roomlist.moveBuddy(username, Languages.get('offline'));
      src = 'themes/' + theme + '/offline.png';
    } else if (status == Status.online) {
      Roomlist.moveBuddy(username, group);
      src = 'themes/' + theme + '/online.png';
    } else if (status == Status.away) {
      Roomlist.moveBuddy(username, group);
      src = 'themes/' + theme + '/away.png';
    } else if (status == Status.disconnected) {
      Roomlist.moveBuddy(username, group);
      src = 'themes/' + theme + '/offline.png';
    } else if (status == Status.blocked) {
      Roomlist.moveBuddy(username, group);
      src = 'themes/' + theme + '/blocked.png';
    } else {
      alert('setUserStatus(): unknown status='+status);
    }
    var imgObj = $(Roomlist.listObjects[username].img);
    if ((imgObj != null) && (src != null)) {
      imgObj.src = src;
    }
  },
   
   /**
    * Move a buddy from one group to another
    *
    * @arguments
    *   username - username of the buddy we're moving
    *   groupname - new group name
    *
    * @author Joshua Gross
    **/
   moveBuddy: function(username, groupname) {
      if (groupname == null) return;
      if ($(Roomlist.listObjects[username].obj).parentNode == $(groupname.replace(/\s/, '_') + '_group')) return;
      if (!$(groupname.replace(/\s/, '_') + '_group')) this.addGroup(groupname);
      
      var group = $(groupname.replace(/\s/, '_') + '_group');

      group.insertBefore($(Roomlist.listObjects[username].obj), null);
   },

   /**
    * Add a new group the roomlist window
    *
    * @arguments
    *   groupname - group to add
    *
    * @author Joshua Gross
    **/
   addGroup: function(groupname) {
      var bList = $('buddylist');
      bList.innerHTML = (groupname=='Offline' ? bList.innerHTML : '') + '<li id="' + groupname.replace(/\s/, '_') + '_groupTop" class="groupTop" onmousedown="return false;" onselectstart="return false;" onclick="Roomlist.toggleGroup(\'' + groupname + '\');"><img id="' + groupname.replace(/\s/, '_') + '_groupArrow" src="themes/' + theme + '/window/arrow.png" />&nbsp;&nbsp;' + groupname + 
                        (groupname!='Offline' ? ' <a href="#" class="delLink" onclick="Dialogs.removeGroup(\'' + groupname + '\');return false;"><img src="themes/' + theme + '/window/smallx.png" style="border:0;" onmouseover="buttonHover(this);" onmouseout="buttonNormal(this);" /></a>' : '') + '</li>' + "\n" + '<ul id="' + groupname.replace(/\s/, '_') + '_group" class="group"></ul>' + (groupname!='Offline' ? bList.innerHTML : '');
   },
   
   /**
    * Remove buddy from the roomlist permanently
    *
    * @arguments
    *   username - buddy we're removin
    *
    * @author Joshua Gross
    **/
   deleteBuddy: function(username) {
      if (username.indexOf('_group') != -1) {
         this.deleteGroup(username.substring(0, username.length - 6));
         return;
      }
   
      var usernam = username;
   
      var ingroup = null;
      for (var group in this.list) {
         if (typeof(this.list[group][username]) !== 'undefined' && this.list[group][username].username == username) {
            ingroup = group;
            break;
         }
      }
   
      var buddyToRmv = $(Roomlist.listObjects[username].obj);

      if (typeof(buddyToRmv) !== 'undefined') {
         buddyToRmv.parentNode.removeChild(buddyToRmv);
         if (this.list[ingroup]) {
            this.list[ingroup][username] = null;

            var xhConn = new XHConn();
            xhConn.connect(pingTo, "POST", "call=removebuddy&username="+username, null);

         }
         Dialog.closeInfo();
      }
   },
   
   /**
    * Process the blocking of a buddy
    *
    * @arguments
    *   username - the buddy to be blocked
    *
    * @author Joshua Gross
    * @update Benjamin Hutchins
    **/
   blockBuddy: function(username) {     
      var isBlocked = this.blocked.inArray(username);
      if (isBlocked) {
         for(var i=0; i<this.blocked.length; i++) {
            if (this.blocked[i] == username) this.blocked.splice(i, 1);
            break;
         }
      } else {
         this.blocked[this.blocked.length] = username;
      }

      var xhConn = new XHConn();      
      xhConn.connect(pingTo, "POST", "call=blockbuddy&username="+username+(isBlocked ? '&status=' + (Status.state + 1) : ''), null);

      for (var group in this.list) {
         if (typeof(this.list[group][username]) !== 'undefined' && this.list[group][username].username == username) {
            this.list[group][username].blocked = (isBlocked ? false : true);
            $(Roomlist.listObjects[username].img).src = (!isBlocked ? 'themes/' + theme + '/blocked.png' : (Roomlist.list[group][username].status == 1 ? 'themes/' + theme + '/online.png' : (Roomlist.list[group][username].status >= 2 ? 'themes/' + theme + '/away.png' : 'themes/' + theme + '/offline.png')));
            if (!blockedBuddyStatus && isBlocked) {
               Roomlist.moveBuddy(username, Languages.get('offline'));
            }
            break;
         }
      }
   },

   /**
    * Remove a group from the roomlist permanently
    *
    * @arguments
    *   groupname - group to be removes
    *
    * @author Joshua Gross
    **/
   deleteGroup: function(groupname) {
      var groupNoSpaces = groupname.replace(/\s/, '_');
      var groupToRmv = $(groupNoSpaces+"_group");
      var groupTop   = $(groupNoSpaces+"_groupTop");
         
      if (typeof(groupToRmv) !== 'undefined') {
         groupToRmv.parentNode.removeChild(groupToRmv);
         groupTop.parentNode.removeChild(groupTop);
         
         for(var i=0;i<this.list[groupname].length;i++) {
            var buddyItem = $(Roomlist.listObjects[this.list[groupname][i].username].obj);
            if (typeof(buddyItem) !== 'undefined') buddyItem.parentNode.removeChild(buddyItem);
         }
         
         delete this.list[groupname];
         
         var xhConn = new XHConn();
         xhConn.connect(pingTo, "POST", "call=removegroup&group="+groupname, null);
         
         Dialog.closeInfo();
      } else {
         $('deletebuddy_error_msg').innerHTML = Languages.get('noSuchGroup');
         $('deletebuddy_error_msg').show();
         Dialog.win.updateHeight();
      }
   },

   /**
    * Toggle whether a group is collapsed or not.
    *
    * @arguments
    *   groupname - group to toggle
    *
    * @author Joshua Gross
    **/
   toggleGroup: function(groupname) {
      var groupList = $(groupname.replace(/\s/, '_') + '_group');
      var groupArrow = $(groupname.replace(/\s/, '_') + '_groupArrow');
      
      if (groupList.style.display != 'none') {
         groupList.hide();
         groupArrow.src = 'themes/' + theme + '/window/arrow_up.png';
      } else {
         groupList.show();
         groupArrow.src = 'themes/' + theme + '/window/arrow.png';
      }
   },

   /**
    * Proccess mouseover ad mouseout for list items
    *
    * @arguments
    *   sel - list element
    *   username - user being messed with
    *   selected - is the mouse over or out
    **/
   selectBuddy: function(sel, username, selected) {
      if (selected === false) {
         if (curSelected != username) {
            try {
               Element.addClassName(sel, 'listNotSelected');
               Element.removeClassName(sel, 'listSelected');
               Element.removeClassName(sel, 'listHover');
            } catch(e) { }
         } else {
            Element.addClassName(sel, 'listSelected');
            Element.removeClassName(sel, 'listNotSelected');
            Element.removeClassName(sel, 'listHover');
         }
      } else {
         Element.addClassName(sel, 'listHover');
         Element.removeClassName(sel, 'listSelected');
         Element.removeClassName(sel, 'listNotSelected');
      }
   },

   /**
    * Handle mouse clicks on a buddy in the roomlist
    *
    * @arguments
    *   event - passed by the browser
    *   username - the user that was clicked
    *
    * @author Joshua Gross
    * @update Benjamin Hutchins
    **/
   clickBuddy: function(event, username) {
      event = event || window.event;

      if (event.button == 2) {
         Context.lastClicked = username;
      } else {
         Context.lastClicked = null;

         if (curSelected.length > 0) {
            try {
               var el = $(Roomlist.listObjects[curSelected].obj);
               Element.addClassName(el, 'listNotSelected');
               Element.removeClassName(el, 'listSelected');
               Element.removeClassName(el, 'listHover');
            } catch(e) { }
         }

         curSelected = username;

         var oel = $(Roomlist.listObjects[curSelected].obj);
         Element.addClassName(oel, 'listSelected');
         Element.removeClassName(oel, 'listNotSelected');
         Element.removeClassName(oel, 'listHover');
      }
      return false;
   },

   /**
    * Process double clicks, open the IM window
    *
    * @author Joshua Gross
    **/
   onBuddyDblClick: function() {
      if (curSelected.length > 0) {
         if (typeof(Chatroom.windows[curSelected]) == 'undefined') {
            Chatroom.createMessenger(curSelected);
         } else {
            if (Chatroom.windows[curSelected].detached) {
               if (Chatroom.windows[curSelected].popup.closed) {
                  Chatroom.windows[curSelected] = Chatroom.windows[curSelected].old;
                  Chatroom.windows[curSelected].show();
               } else {
                  Chatroom.windows[curSelected].popup.focus();
               }
            } else if (!Chatroom.windows[curSelected].isVisible()) {
               Chatroom.windows[curSelected].show();
               Chatroom.windows[curSelected].toFront();
               setTimeout("scrollToBottom('" + Chatroom.windows[curSelected].getId() + "_rcvd')", 125);
               setTimeout("$('" + Chatroom.windows[curSelected].getId() + "_sendBox').focus();", 250);
            } else {
               Chatroom.windows[curSelected].toFront();
               setTimeout("$('" + Chatroom.windows[curSelected].getId() + "_sendBox').focus();", 250);
            }
         }
      }
   },

   /**
    * 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)), (roomListLoc == 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'});                                     
   }

};

