/*Mozilla Thunderbird 1.5 RC1
Jak pokazac TB, ze po przejsciu na grupe dyskusyjna ma utrzymac watki zwiniete oraz
 zaznaczyc pierwszy wg. uporzadkowania watek nadrzedny.

#############################################################

Marcin Szewczyk (Wodny), wodny@tlen.pl
LM: 05.11.2005

#############################################################

Opisane ponizej pliki nalezy wyjac z archiwow JAR (archiwum JAR jest pakowane algorytmem ZIP)
 np. programem WinRAR czy WinZIP, ale za pewne radzi sobie z tym kazdy porzadny "paker".
Nastepnie zmodyfikowac wg. klucza i z powrotem spakowac JAR'y (metoda ZIP) z juz zmodyfikowanymi plikami.

!! Przed przystapieniem do roboty, zrob kopie zapasowa modyfikowanych plikow JAR, bo w razie bledu,
 trzeba by od nowa Mozilla Thunderbird instalowac !!

Wylacz Mozilla Thunderbird przed rozpoczeciem edycji.

Pliki JAR sa przewaznie w katalogu C:\Program Files\Mozilla Thunderbird\chrome

#############################################################
Oto, co trzeba zmienic:
W pliku
C:\Program Files\Mozilla Thunderbird 1.0 Final\chrome\messenger.jar:
\content\messenger\msgMail3PaneWindow.js

nalezy wkleic przerobione cialo funkcji ScrollToMessageAfterFolderLoad
#############################################################*/
function ScrollToMessageAfterFolderLoad (folder)
{
  var scrolled = false;

  //Dla nie-grup sprobuj przejsc do nowej wiadomosci
  if(folder.server.type != 'nntp')
    scrolled = ScrollToMessage(nsMsgNavigationType.firstNew, true, false /* selectMessage */);
  
  //Dla nie-grup sprobuj przesunac sie do ostatnio zaznaczonej wiadomosci
  if(folder.server.type != 'nntp'){  
    if (!scrolled && folder && pref.getBoolPref("mailnews.remember_selected_message")) 
    {
      // if we failed to scroll to a new message,
      // reselect the last selected message
      var lastMessageLoaded = folder.lastMessageLoaded;
      if (lastMessageLoaded != nsMsgKey_None)
        scrolled = SelectAndScrollToKey(lastMessageLoaded);
    }
  }
  
  if (!scrolled) 
  {
    // if we still haven't scrolled,
    // scroll to the newest, which might be the top or the bottom
    // depending on our sort order and sort type
    
    if(folder.server.type == 'nntp'){ 
      // Dla grup wykonuj specjalny kod...
      
      gDBView.doCommand(nsMsgViewCommandType.collapseAll);
      if(gDBView.sortOrder == nsMsgViewSortOrder.ascending){
        scrolled = ScrollToMessage(nsMsgNavigationType.lastMessage, true, true /* selectMessage */);
      } else {
        scrolled = ScrollToMessage(nsMsgNavigationType.firstMessage, true, true /* selectMessage */);
      }
    } else {
      // dla reszty sytuacji - stary kod
      
      if (gDBView.sortOrder == nsMsgViewSortOrder.ascending) 
      {
        switch (gDBView.sortType) 
        {
          case nsMsgViewSortType.byDate: 
          case nsMsgViewSortType.byId: 
          case nsMsgViewSortType.byThread: 
           scrolled = ScrollToMessage(nsMsgNavigationType.lastMessage, true, false /* selectMessage */);
           break;
        }
      }
    }
      
    // if still we haven't scrolled,
    // scroll to the top.
    if (!scrolled)
      EnsureRowInThreadTreeIsVisible(0);
  }   
  
  return scrolled;
}
/*#############################################################
czekam na uwagi*/