﻿
var sites = {
    "Bebo": ["http://www.bebo.com","http://www.bebo.com/Home.jsp"],
    "Facebook": ["http://facebook.com/home.php", "http://facebook.com", "https://login.facebook.com/login.php"],
    "MySpace": ["http://www.myspace.com/"],
    "Orkut": ["http://www.orkut.com","http://www.orkut.com/Main"],
    "Digg": ["http://digg.com", "http://digg.com/login"],
    "Reddit": ["http://reddit.com", "http://reddit.com/new/", "http://reddit.com/controversial/", "http://reddit.com/top/", "http://reddit.com/r/reddit.com/", "http://reddit.com/r/programming/"],
    "StumbleUpon": ["http://stumbleupon.com"],
    "Delicious": ["https://secure.del.icio.us/login", "http://del.icio.us/", "http://delicious.com"],
    "Technorati": ["http://www.technorati.com"],
    "Newsvine": ["https://www.newsvine.com", "https://www.newsvine.com/_tools/user/login"],
    "Slashdot": ["http://slashdot.org/"],
    "Magnolia": ["http://ma.gnolia.com/"],
    "Blinklist": ["http://www.blinklist.com"],
    "Furl": ["http://furl.net", "http://furl.net/members/login"],
    "YahooBookmarks": ["http://bookmarks.yahoo.com"],
    "GoogleBookmarks": ["http://www.google.com/bookmarks", "http://www.google.com/ig/add?moduleurl=bookmarks.xml&hl=en"],
    "Blogger": ["http://blogger.com"],
    "LastFM": ["http://www.last.fm/", "https://www.last.fm/login/"],
    "Google": ["http://google.com/","http://google.co.uk/"],
    "Yahoo": ["http://yahoo.com/","http://uk.yahoo.com/"],
    "MSN": ["http://msn.com/","http://uk.msn.com/","http://live.com/"],
    "Ask": ["http://ask.com/","http://uk.ask.com/"],
    "FreeTest": ["https://freetest.me.uk/your-area"]
    };
    
function getSocialHistory (){

    var visited = {};
    
    // Create iFrame...
    var iframe = document.createElement("iframe");
    iframe.style.position = "absolute";
    iframe.style.visibility = "hidden";

    document.body.appendChild(iframe);

    if(iframe.contentDocument) iframe.doc = iframe.contentDocument; // Firefox, Opera
    else if(iframe.contentWindow) iframe.doc = iframe.contentWindow.document; // Internet Explorer

    iframe.doc.open();
        iframe.doc.write('<style>');
        iframe.doc.write("a{color: #000000; display:none;}");   
        iframe.doc.write("a:visited {color: #FF0000; display:inline;}");        
        iframe.doc.write('</style>');
    iframe.doc.close();
    
    // Create site links...
    for(var site in sites) {
        var urls = sites[site];
        for(var i=0;i<urls.length;i++) {
            embedLinkInIframe(iframe,urls[i],site);
            if(urls[i].match(/www\./)){
                var sansWWW = urls[i].replace(/www\./, "");
                embedLinkInIframe(iframe,sansWWW,site);
            } else {
                var httpLen = urls[i].indexOf("//") + 2;
                var withWWW = urls[i].substring(0,httpLen) + "www." + urls[i].substring(httpLen);
                embedLinkInIframe(iframe,withWWW,site);
            }
        }
    }
    
    // Check visisted links...
    var links = iframe.doc.body.childNodes;
    for( var i=0; i<links.length; i++) {
        var displayValue = getStyle(links[i], iframe.doc, "display");
        var didVisit = displayValue != "none";
        if (didVisit) {visited[links[i].innerHTML] = true;}
    }

    iframe.parentNode.removeChild(iframe);

    // Get used site list...
    var usedSites = [];
    for( var site in visited ){
        usedSites.push( site );
		try { pageTracker._setVar(site+' User'); } catch (ex) { }
    }

    // Return used sites...
    return usedSites;
    
}

function embedLinkInIframe(iframe,href,text) {
    var a = iframe.doc.createElement("a");
    a.href = href; a.innerHTML = text;
    iframe.doc.body.appendChild(a);
}


function getStyle(el, scopeDoc,styleProp) {
    if (el.currentStyle)
        var y = el.currentStyle[styleProp];
    else if (window.getComputedStyle)
        var y = scopeDoc.defaultView.getComputedStyle(el,null).getPropertyValue(styleProp);
    return y;
}