Hej.
I update the number of open windows with af function, wich means that it allways minus one.
This is my code (with danish comments):
code:
var Status = "fra";    // SÆTTER STATUS TIL/FRA
var oprindeligPB = Messenger.MyPersonalMessage; // GEMMER OPRINDELIGE PERSONLIGE BESKED
function OpdaterPB()
{
    if (Status == "til")
    {
        var online = 0;
        var offline = 0;
        var kontakter = Messenger.MyContacts; 
        var e = new Enumerator(kontakter); 
        for(; !e.atEnd(); e.moveNext()) { 
            var kontakt = e.item();
            if(kontakt.Status == "1") {
            offline++;
            } else {
                online++;
            }
        }
        var alle = (online + offline);
        var igang = Messenger.CurrentChats.Count - 1;
        Messenger.MyPersonalMessage = "Online: " + online + " | Offline: " + offline + " | I alt: " + alle + " | Åbne vinduer: " + igang;
    }
}
// NÅR DU LOGGER PÅ : START
function OnEvent_Initialize(MessengerStart)
{    
    opdaterPB();
}
// NÅR DU LOGGER PÅ : SLUT
// NÅR DU LOGGER AF : START
function OnEvent_Uninitialize(MessengerExit)
{
    Messenger.MyPersonalMessage = oprindeligPB;
}
// NÅR DU LOGGER AF : SLUT
// NÅR EN KONTAKTER LOGGER PÅ : START
function OnEvent_ContactSignin()
{
    opdaterPB();
}
// NÅR EN KONTAKTER LOGGER PÅ : SLUT
// NÅR EN KONTAKTER LOGGER AF : START
function OnEvent_ContactSignout()
{
    opdaterPB();
}
// NÅR EN KONTAKTER LOGGER AF : SLUT
// NÅR ET VINDUE ÅBNES : START
function OnEvent_ChatWndCreated()
{
    OpdaterPB();
}
// NÅR ET VINDUE ÅBNES : SLUT
// NÅR ET VINDUE LUKKES : START
function OnEvent_ChatWndDestroyed()
{
    OpdaterPB();
}
// NÅR ET VINDUE LUKKES : SLUT
// LAVER MENU : START
function OnGetScriptMenu(Location)
{
    ScriptMenu = "<ScriptMenu>";
    ScriptMenu += "<MenuEntry Id=\"tilfra\">";
    if (Status == "fra")
    {
        ScriptMenu += "Slå til";
    } else {
        ScriptMenu += "Slå fra";
    }
    ScriptMenu += "</MenuEntry>";
    ScriptMenu += "</ScriptMenu>";
    return ScriptMenu;
}
// LAVER MENU : SLUT
// VALGT MENU : START
function OnEvent_MenuClicked(MenuItemId,Location,OriginWnd)
{
    switch(MenuItemId)
    {
        case "tilfra":
            if (Status == "fra")
            {
                Status = "til";
                MsgPlus.DisplayToast("Kontakt tæller", "Kontakt tæller er slået til.");
                opdaterPB();
            } else {
                Status = "fra";
                MsgPlus.DisplayToast("Kontakt tæller", "Kontakt tæller er slået fra.");
            }
            break;
    }
}
// VALGT MENU : SLUT