var Tweeter = new Object();Tweeter.callback = Tweeter.onResponse;Tweeter.DeleteBlog = function(id){	this.callback = this.onResponse;	var gateway = 'service/gateway.php?action=remove-blog&id='+id;	this.makeRequest(gateway);}Tweeter.UpdateBlog = function(id, url, name, category){	this.callback = this.onResponse;	var gateway = 'service/gateway.php?action=update-blog&id='+id+'&url='+escape(url)+'&name='+escape(name)+"&category="+category;	this.makeRequest(gateway);}Tweeter.AddBlog = function(tid, url, name, category){	this.callback = this.onResponse;	var gateway = 'service/gateway.php?action=add-blog&tid='+tid+'&url='+escape(url)+'&name='+escape(name)+"&category="+category;	this.makeRequest(gateway);}Tweeter.makeRequest = function(gateway){	this.request = (window.XMLHttpRequest) ? new XMLHttpRequest(): new ActiveXObject("Microsoft.XMLHTTP"); 	this.request.onreadystatechange = function() { Tweeter.checkReadyState(); };	this.request.open('GET', gateway, true);	this.request.send(gateway);}Tweeter.onResponse = function(){	if(this.request.responseText == 'rss error')	{		Tweeter.ThrowRSSError();	}	else	{		var _location = document.location.toString();		var url = _location.split("#");		document.location=url[0];	}}Tweeter.onBlogAdded = function(){	if(this.request.responseText == 'rss error')	{		Tweeter.ThrowRSSError();	}	else	{		var _location = document.location.toString();		var url = _location.split("#");		document.location=url[0];	}}Tweeter.ThrowRSSError = function(){	var div = document.createElement('div');	div.id='error';	div.onclick = function(){ this.style.display='none'; };	div.innerHTML = 'Your RSS feed is not valid, please double-check the URL and try again.';	document.getElementsByTagName('body')[0].appendChild(div);}	Tweeter.checkReadyState = function(){	switch(this.request.readyState)	{		case 1: break;		case 2: break;		case 3: break;		case 4:			this.callback();	}}