// ==UserScript==
// @name          Reader Cloud
// @namespace     http://social.cs.uiuc.edu/people/gilbert/
// @description   turns reader items into a cloud
// @include       http://www.google.com/reader/*
// ==/UserScript==

function makeCloud() {
    var checkIfLoaded = document.getElementById('sub-tree-item-1-link');
    if (!checkIfLoaded) {
        setTimeout(makeCloud, 250);
        return;
    }

    var tree = document.getElementById('sub-tree');
    if (!tree) {
        return;
        alert('no tree!');
    }
    // just cause I don't use it myself
    var add = document.getElementById('add-box');
    var newRed = document.getElementById('scour-announce-new');
    var controls = document.getElementById('stream-prefs-menu');
    var nav = document.getElementById('nav');
    var refresh = document.getElementById('sub-tree-refresh');
    add.style.display = 'none';
    add.style.visibility = 'hidden';
    newRed.style.display = 'none';
    newRed.style.visibility = 'hidden';
    controls.style.display = 'none';
    controls.style.visibility = 'hidden';
    refresh.style.display = 'none';
    refresh.style.visibility = 'hidden';
    nav.style.textAlign = 'right';

    // restyle the containers themselves, not the links
    var treeContainer = document.getElementById('sub-tree-container').parentNode;
    treeContainer.style.backgroundColor = '#FFF';
    var readingList = document.getElementById('reading-list-selector');
    var selectors = document.getElementById('selectors-box');
    readingList.style.visibility = 'hidden';
    readingList.style.display = 'none';
    var selectorsUL = readingList.parentNode;
    selectorsUL.style.cssFloat = 'right';
    selectorsUL.style.listStyleType = 'none';
    selectorsUL.style.margin = '0px';
    selectorsUL.parentNode.removeChild(selectorsUL);
    selectors.style.visibility = 'hidden';
    selectors.style.display = 'none';

    document.getElementById('sub-tree-footer').insertBefore(selectorsUL, document.getElementById('sub-tree-subscriptions'));
    document.getElementById('sub-tree-subscriptions').innerHTML = '<br/>' + document.getElementById('sub-tree-subscriptions').innerHTML;
    //document.getElementById('overview-selector').style.backgroundImage = 'url(/reader/ui/2018795750-icon-overview.gif)';
    //getElementById('overview-selector').style.backgroundPosition = 'left center';
    //getElementById('overview-selector').style.backgroundRepeat = 'no-repeat';
    document.getElementById('star-selector').style.visibility = 'hidden';
    document.getElementById('star-selector').style.display = 'none';
    document.getElementById('broadcast-selector').style.visibility = 'hidden';
    document.getElementById('broadcast-selector').style.display = 'none';

    tree.style.overflowX = 'auto !important';
    tree.style.padding = '0px 0px 0px 0px !important';
    tree.style.paddingTop = '8px !important';
    tree.style.marginLeft = '6px';
    tree.style.width = '100%';
    for (var i=1; i<10000; i++) {
        var li = document.getElementById('sub-tree-item-'+i+'-main');
        var a = document.getElementById('sub-tree-item-'+i+'-link');
        var img = document.getElementById('sub-tree-item-'+i+'-icon');
        var span = document.getElementById('sub-tree-item-'+i+'-name');
        var unread = document.getElementById('sub-tree-item-'+i+'-unread-count');
        if (!li) break;
        li.style.clear = 'both !important';
        li.style.display = 'inline !important';
        li.style.paddingRight = '5px !important';
        li.style.paddingLeft = '0px !important';

        if (!a) continue;
        a.style.display = 'inline';
        a.style.cssFloat = 'none';
        a.style.overflow = 'auto';
        a.style.whiteSpace = 'normal';

        if (!img) continue;
        img.style.display = 'none';
        img.style.visibility = 'hidden';

        if (!unread) continue;
        var num = -1;
        if (unread.innerHTML.match(/\d+/)) {
            var matches = unread.innerHTML.match(/(\d+)/);
            num = matches[0];
        }
        unread.style.display = 'none';
        unread.style.visibility = 'hidden';

        if (!span) continue;
        span.childNodes[0].innerHTML = span.childNodes[0].innerHTML.replace(/ /g, "\.");
        span.childNodes[0].innerHTML = span.childNodes[0].innerHTML.toLowerCase();
        var font = '11px';
        var opacity = '.65';
        if (num > 75) {
            font = '16px';
            opacity = '.75';
        } else if (num > 50) {
            font = '14px';
            opacity = '.65';
        } else if (num > 20) {
            font = '13px';
            opacity = '.60';
        } else if (num > 0) {
            font = '12px';
            opacity = '.48';
        } else {
            opacity = '.40';
        }
        span.style.color = '#0000CC';
        span.style.fontSize = font;
        span.innerHTML = span.innerHTML + '<span style="font-size: 1px"> </span>';
        span.style.marginLeft = '-5px';
        span.style.lineHeight = '1.4';
        span.style.opacity = opacity;
    }
}
window.addEventListener('load',makeCloud,true);
