// ==UserScript==
// @name           MySpace live home page title
// @namespace      http://roub.net/xul/greasemonkey
// @description    Refresh MySpace home page once a minute, with new message and friend requests noted in the page title
// @include        http://home*.myspace.com/*
// ==/UserScript==


var preg = new RegExp("\\bfuseaction=user[^\\.]");

//  on home page?
if (preg.exec(document.location.href))
{
    var newMsgs = false;
    var friendReqs = false;
    var comments = false;
    var updates = new Array();  

    if (findText("New Messages!"))
    {
        updates.push("New msgs");
    }
    if (findText("New Friend Requests!"))
    {
        updates.push("New reqs");
    }
    if (findText("New Comments!"))
    {
        updates.push("New comments");
    }

    var addStr = updates.join(", ");

    if (addStr != '')
    {
        addStr += " - ";
    }

    //  set (possibly new) title
    document.title = addStr + document.title;

    //  and update in 1 minute
    window.setTimeout("window.location.reload('true');", 60000);
}


function findText(txt)
{
    var lns = document.evaluate("//span[contains(.,'" + txt + "')]", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);

    if (lns)
    {
        var sp = lns.singleNodeValue;

        if (sp && ! ancestorHidden(sp))
        {
            return(true);
        }
    }

    return(false);
}


function ancestorHidden(node)
{
    var divs = document.evaluate("ancestor::div[contains(@class,'hide')]", node, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);

    if (divs && divs.singleNodeValue)
    {
        return(true);
    }

    return(false);
}


