
// http://www.simonwhatley.co.uk/parsing-twitter-usernames-hashtags-and-urls-with-javascript
String.prototype.parseURL = function() {
	return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/, function(url) {
		return url.link(url);
	});
};

String.prototype.parseUsername = function() {
	return this.replace(/[@]+[A-Za-z0-9-_]+/, function(u) {
		var username = u.replace("@","")
		return u.link("http://twitter.com/"+username);
	});
};

String.prototype.parseHashtag = function() {
	return this.replace(/[#]+[A-Za-z0-9-_]+/, function(t) {
		var tag = t.replace("#","%23")
		return t.link("http://search.twitter.com/search?q="+tag);
	});
};

function ajaxTwitter() {
  for (var i = 0; i < twitternames.length; i++) {
    fetchStream(twitternames[i], twittercounts[i]);
  }
}

function fetchStream(name, count) {
   var xmlhttp = null;

   if (window.XMLHttpRequest) {
     // code for IE7+, Firefox, Chrome, Opera, Safari
     xmlhttp = new XMLHttpRequest();
   }
   else if (window.ActiveXObject) {
     // code for IE6, IE5
     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
   }
   else {
     document.getElementById(name).innerHTML = "Your browser does not support XMLHTTP!";
   }

   if (xmlhttp != null) {
     xmlhttp.onreadystatechange = function() {
       if (xmlhttp.readyState == 4) {
         html = '<p><a id="' + name + '/" href="http://www.twitter.com/' + name + '">This tweet stream is currently unavailable. Follow ' + name + ' on twitter.com.</a></p>';
         var xmlDoc = xmlhttp.responseXML.documentElement;
         if (xmlDoc != null) {
           var tweets = xmlDoc.getElementsByTagName("tweet");
           var dates = xmlDoc.getElementsByTagName("date");
           var style = name+'tweetfirst';
           var n = tweets.length;
           if (typeof(limit) != "undefined")
             n = Math.min(limit, n);
           for (var i = 0; i < n; i++) {
             if (i == 0)
               html = '';
             /*html += '<p class="' + style + '">' + tweets[i].childNodes[0].nodeValue.parseURL().parseUsername().parseHashtag();
               html += '<span class="'+name+'tweetdate"> ' + dates[i].childNodes[0].nodeValue; + '</span></p>';
               style = name+'tweet';*/
             html += '<p><a id="' + name + '/" href="http://www.twitter.com/' + name + '">' + tweets[i].childNodes[0].nodeValue + '</a><br>' + dates[i].childNodes[0].nodeValue + '</p>';
           }
         }
         document.getElementById(name).innerHTML = html;
       }
     }
     if (count > 0)
       count = '&count='+count;
     else
       count = '';
     xmlhttp.open("GET", "twitter.php?username=" + name + count, true);
     xmlhttp.send(null);
   }
}
