// Twitter homepage with all replies
// version 0.200
// 26/10/2007
// Copyright (c) 2007, Raul Ochoa <rochoaf@gmail.com>
// Released under the GPL license
// http://www.gnu.org/copyleft/gpl.html
//
//----------------------------------------------------------------------------
//
// CHANGELOG:
//
// # 0.200 - 26/10/2007
//   · Asynchronous XMLHttpRequest usage.
//
// # 0.100 - 22/10/2007
//   · First release
//
// ----------------------------------------------------------------------------
//
// This is a Greasemonkey user script.
//
// To install, you need Greasemonkey: http://greasemonkey.mozdev.org/
// Then restart Firefox and revisit this script.
// Under Tools, there will be a new menu item to "Install User Script".
// Accept the default configuration and install.
//
// To uninstall, go to Tools/Manage User Scripts,
// select "TwitterHomeWithAllReplies", and click Uninstall.
//
// ----------------------------------------------------------------------------
//
// ==UserScript==
// @name TwitterHomeWithAllReplies
// @namespace https://rau1.com/
// @description Retrieve all your Twitter replies and put in homepage, so you can see replies from people not in your friend list.
// @include http://twitter.com/home
// ==/UserScript==

function showReplies() {
	var xhr = new XMLHttpRequest();
	xhr.open('GET', '/replies', true);
	xhr.onreadystatechange = function (event) {
		if (xhr.readyState == 4) {
			if (xhr.status == 200) {
				var replies = xhr.responseText;
				replies = replies.split('<table')[1].substring(45).split('</table>')[0];
				document.getElementById('timeline').innerHTML += replies;
				var statuses = document.getElementById('timeline').getElementsByTagName('tr');
				var items = new Array();
				for (var i = 0; i<statuses.length; i++) {
					items[i] = statuses[i];
				}
				items.sort(function(a, b) { return (a.id > b.id) ? -1 : 1; });
				document.getElementById('timeline').innerHTML = '';
				var i = 1;
				document.getElementById('timeline').innerHTML += items[0].innerHTML;
				while (i<items.length) {
					if (items[i-1].id == items[i].id) {
						i++;
					}
					document.getElementById('timeline').innerHTML += items[i].innerHTML;
					i++;
				}
			}
		}
	};
	xhr.send(null);
}

var init = document.createElement('script');
init.type = 'text/javascript';
init.innerHTML = showReplies.toString();
document.getElementsByTagName('head')[0].appendChild(init);
	
document.getElementsByTagName('body')[0].setAttribute('onload', 'registerResponders(); showReplies();')

