// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

document.observe("dom:loaded", function() {
    $$(".tweets-control").each(function(control) {
	control.observe('click', function(event) {
	    var elt = Event.element(event);
	    if(elt.innerHTML.match(/-/))
		elt.innerHTML = "[+]";
	    else
		elt.innerHTML = "[-]";
	    elt.up().next(".tweets").toggle();
	    Event.stop(event);
	});
    });
    $$(".about-control").each(function(control) {
	control.observe('click', function(event) {
	    var elt = Event.element(event);
	    if(elt.innerHTML.match(/-/))
		elt.innerHTML = "[+]";
	    else
		elt.innerHTML = "[-]";
	    var about = elt.up(".user").down(".about");
	    about.toggle();
	    Event.stop(event);
	});
    });
    if (typeof pageTracker == "object") {
	$$("a[href^='http']").each(function(outbound) {
	    outbound.observe('click', function(event) {
		var elt = Event.element(event);
		pageTracker._trackPageview('/outgoing/' + elt.href);
		return true;
	    });
	});
    }
});

var current_filter = null;
function grep(screen_name) {
    if (screen_name == current_filter) {
	restore();
    } else {
	current_filter = screen_name;
	var re = new RegExp("\\b" + screen_name + "\\b");
	$$(".story").each(function(story) {
	    var cs = story.getAttribute("contributors");
	    if (re.test(cs)) 
		story.show();
	    else
		story.hide();
	});
	$('restore').show();
    }
}

function restore() {
    $$(".story").each(function(story) {
	story.show();
    });
    $('restore').hide();
    current_filter = null;
}

var _sortByTime = function(a,b) {
    var ats = a.getAttribute("timestamp");
    var bts = b.getAttribute("timestamp");
    return ats == bts ? 0 : ats > bts ? -1 : 1;
}
var _sortByScore = function(a,b) {
    var as = parseInt(a.getAttribute("score"));
    var bs = parseInt(b.getAttribute("score"));
    if (bs - as == 0) {
	return _sortByTime(a,b);
    } else {
	return bs - as;
    }
}

function sortStoriesToggle(event) {
    var elt = Event.element(event);
    var sortfn;
    if (elt.innerHTML == "score") {
	elt.next("a").href = "#";
	elt.next("a").removeClassName("selected");
	elt.href = null;
	elt.addClassName("selected");
	sortfn = _sortByScore;
    } else {
	elt.previous("a").href = "#";
	elt.previous("a").removeClassName("selected");
	elt.href = null;
	elt.addClassName("selected");
	sortfn = _sortByTime;
    }
    var stories = $$('.story').sort(sortfn);
    var parent = stories[0].up();
    stories.each(function(elt) {
	elt.remove();
    });
    stories.each(function(elt) {
	parent.insert(elt);
    });
}




