	$(function() {
		
	//functions used for displaying the tweets
		
		var myTwitterName = 'thrive4business';
		var numberOfTweets = 4;
		
		//get tweets
		var toAdd = '<ul>';
			
		var tweetFeed = 'http://search.twitter.com/search.json?q=from%3A' + myTwitterName + '&count=' + numberOfTweets + '&callback=?';
		var swearWords = new Array('fuck','cunt','bollocks','twat','shit','piss','crap','bastard');
		var safeWords = new Array('scunthorpe', 'mishit', 'mishits', 'mishitting', 'shitake', 'shitakes', 'lightwater', 'meltwater', 'meltwaters', 'cutwater', 'cutwaters', 'saltwater', 'outwatch', 'outwatches', 'outwatched', 'outwatching', 'wristwatch', 'wristwatches', 'scrap', 'scrapbook', 'scrapbooks', 'scrape', 'scraped', 'scraper', 'scrapers', 'scrapes', 'scrapheap', 'scrapheaps', 'scrapie', 'scrapies', 'scraping', 'scrapings', 'scrappage', 'scrappages', 'scrapped', 'scrapper', 'scrappers', 'scrappier', 'scrappiest', 'scrappily', 'scrappiness', 'scrappinesses', 'scrapping', 'scrapple', 'scrapples', 'scrappy', 'scraps', 'skyscraper', 'skyscrapers');
		$.getJSON(tweetFeed, function(d)
		{
						
			$.each(d.results, function(i,item)
			{
								
				var createdAt = item.created_at.substr(5);
				if(i===numberOfTweets) return false;
				
				toAdd += '<li><p>' + wordFilter(swearWords, safeWords, item.text.httpify().linkify().atify().hashify().truncatify()) + '<span class="add-info">by <a href="http://twitter.com/' + myTwitterName + '" title="Tweet from @' + myTwitterName + '">@' + myTwitterName + '</a> | ' + $.timeago(createdAt) + '</span></p></li>';
			})
			toAdd+="</ul>";
			$('#tweets').html(toAdd);
		})
		
		String.prototype.httpify = function() {
			return this.replace(' www.',' http://www.');
		}
		String.prototype.linkify = function() {
	return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/, 
		function(m) {
			if(m.length > 26)
			{
				var origLink = m;
				var textForLink = m.replace('http://','').replace('www.','');
				
				var startOfLink = 'www.' + textForLink.substr(0,4);
				var endOfLink = textForLink.substr(textForLink.length-6, textForLink.length);
				
				var linkText = startOfLink + '...' + endOfLink;
				
				return "<a href='" + m + "'>" + linkText + "</a>";
			} else {
				return "<a href='" + m +"'>" + m.replace('http://','') + "</a>";
			}
    		
		});
};

	String.prototype.truncatify = function() {
		return this.replace(/\w+/gi, function(m) {
			if(m.length > 26)
			{
				var orig = m;
				var s = m.substr(0,5);
				var e = m.substr(m.length-5, m.length);
				return s + '...' + e;
			} else {
				return m;
			}
		})
	}
String.prototype.atify = function() {
	return this.replace(/@[\w]+/g, 
		function(m) {
			return "<a href='http://www.twitter.com/"+m.replace('@','')+"'>"+m+"</a>";
		});
};

	function wordFilter(swears, safe, text)
	{
		var newSafeWords = new Array();
		for(var j=0; j < safe.length; j++)
		{
			
			
			for(var p=0; p < swears.length; p++)
			{
				
				var regeX = new RegExp(swears[p],'gi');
				
				var newSafeWord = safe[j].replace(regeX,function(m) {
					
					var firstBit = m.substr(0,2);
		
					var lastBit = m.substr(2, m.length-1);
				
					return firstBit + 'IGNORE' + lastBit;
					
					
				})
				var isIgnore = new RegExp('IGNORE','g');
				var matchPos = newSafeWord.search(isIgnore);
				if(matchPos !=-1)
				{
					newSafeWords.push(newSafeWord);
				
				}
			
				
			}
			
			
			
		}

	
		for(var a=0; a < safe.length; a++)
		{
			regeX = new RegExp(safe[a],'gi');
			var fL = safe[a].substr(0,1);
			var rst = safe[a].substr(1);
			text = text.replace(regeX,function(m) {
				return m.charAt(0) + newSafeWords[a].substr(1);
			});
		}
		
		for(var i=0; i < swears.length; i++)
		{
			var firstLetter = swears[i].substr(0,1),
				lastLetter = swears[i].substr(-1),
				middleOfWord = swears[i].substr(1, swears[i].length-1);
			
			
			//define the regex
			var regex = new RegExp(swears[i], 'gi');
			
			text = text.replace(regex,
					function(m)
					{
						
						var firstChar = m.charAt(0),
							lastChar = m.charAt(m.length-1),
							middleChars = m.substr(1, m.length-1);
						aster = ''; //reset the asterisks to 0
						for(var k=0; k < middleChars.length-1;k++)
						{
							aster += '*';
						}
						return firstChar + aster + lastChar;
					}
				)
			
			
		}
		text = text.replace(/IGNORE/g, '');

		return text;
	
	}
	
	String.prototype.hashify = function() {
	return this.replace(/#\w+/gi,
		function(m) {
			return '<a href="http://twitter.com/search?q=%23' + m.replace('#','')+'">'+m+'</a>';
		});
	
	}
});


