// ==UserScript==
// @name           Twitter Follower Check
// @namespace      http://www.sukechan.net/
// @include        http://twitter.com/*
// @version        1.0
// ==/UserScript==

(function(){
	var num = 1;
	var screenName = location.href.substr(19);
	
	// Followers Request
	function getFollowers() {
		addElm.disabled = true;
		addElm.value = "Loading...";
		var httpObj = createRequest();
		if (httpObj) {
			httpObj.open("GET", "http://twitter.com/statuses/followers.json?page=" + num, true);
			httpObj.send(null);
			httpObj.onreadystatechange = function() {
				if (httpObj.readyState == 4) {
					if (httpObj.status == 200) {
						var jsonData = eval(httpObj.responseText);
						if (jsonData.length > 0) {
							for (var i = 0; i < jsonData.length; i++) {
								if (screenName == jsonData[i].screen_name) {
									addElm.value = "You are followed.";
									return;
								}
							}
							getFollowers(num++);
						} else {
							addElm.value = "You are not followed.";
						}
					} else {
						addElm.value = "error. status: " + httpObj.status;
					}
				}
			}
		}
	}
	
	// XMLHttpRequest
	function createRequest() {
		var xmlHttp = null;
		if (window.XMLHttpRequest) {
			xmlHttp = new XMLHttpRequest();
		} else if (window.ActiveXObject) {
			try {
				xmlHttp = new ActiveXObject("MSXML2.XMLHTTP");
			} catch (e) {
				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
			}
		}
		return xmlHttp;
	}
	
	// add element
	var elm = document.getElementById("follow-control");
	if (elm) {
		var addElm = document.createElement("input");
		addElm.setAttribute("class", "follow-button");
		addElm.setAttribute("type", "button");
		addElm.setAttribute("value", "Does follow do you?");
		addElm.addEventListener("click", function() {getFollowers()}, false);
		addElm.style.width = "150px";
		addElm.style.marginTop = "3px";
		elm.appendChild(addElm);
	}
})();