function myTwitterCallBack(data) {
	var tweet;
	var text;
	var tweetid;
	var created;
	var repliedToName;
	var repliedToId
	var retweeted;
	var username;
	var userid;
	var out = "";
	var html = [''];
	var timeMention;
	for (var i = 0; i < data.length; i++) {
 		text= data[i].text;
		id= data[i].id_str;
		created = data[i].created_at;
		repliedToName = data[i].in_reply_to_screen_name;
		repliedToId = data[i].in_reply_to_user_id;
		retweeted = data[i].retweeted;
		username = data[i].user.screen_name;
		userid = data[i].user.id;
		
		timeMention = getTimeMention(created);
		text = convertTags(text);
		userLink = "<a href='http://twitter.com/intent/user?screen_name=" + username + "' target='_blank'>" + username + "</a>";
		tweet = userLink + ": " + text + "<br />";
		html.push("<div class='tweet'>" + tweet + "</div>");
		links =	 "<a href='http://twitter.com/" + username + "/status/" + id + "' target='blank'>" + timeMention + "</a>" + "\u00B7" +
				"<a href='http://twitter.com/intent/tweet?in_reply_to=" + id + "' target='blank'>Tweet</a>" + "\u00B7" + 
				"<a href='http://twitter.com/intent/retweet?tweet_id=" + id + "' target='blank'>Retweet</a>" + "\u00B7" +
					getTwitterLink() + "";
		html.push(links);
	}
	
	document.getElementById('tweetsHome').innerHTML = html.join('');
}

function twitterAjaxCall(){

		$(document).ready(function(){
		        $.ajax({
		                url: 'http://twitter.com/statuses/user_timeline/investflanders.json?count=1&callback=myTwitterCallback',
		                cache: false,
		                dataType: 'xml',
		                success: function(data){
		                        //myTwitterCallBack(data);
		                        alert(data);
		                }
		        });
		}); 
}

function getTimeMention(date){

	var tmpSplit = date.split(" ");
	var tmpDay = tmpSplit[2];
	var tmpMonth = tmpSplit[1];
	var tmpTime = tmpSplit[3];
	var tmpSec = tmpTime.split(":")[2];
	var tmpMin = tmpTime.split(":")[1];
	var tmpHr = tmpTime.split(":")[0];
	var tmpYear = tmpSplit[5];
	var tmpOffset = tmpSplit[4];
	var month;
	switch(tmpMonth){
		case "Jan":
			month = 0;
			break;
		case "Feb":
			month = 1;
			break;			
		case "Mar":
			month = 2;
			break;
		case "Apr":		
			month = 3;
			break;
		case "May":
			month = 4;
			break;
		case "Jun":
			month = 5;
			break;
		case "Jul":
			month = 6;
			break;
		case "Aug":
			month = 7;
			break;
		case "Sep":
			month = 8;
			break;
		case "Oct":
			month = 9;
			break;
		case "Nov":
			month = 10;
			break;
		case "Dec":
			month = 11;
			break;
	}

	var tweetTime = new Date(tmpYear, month, tmpDay, tmpHr, tmpMin, tmpSec, 0);
	tweetTime = convertTimeZone(tweetTime);
	var now = new Date();

	var timeBetween = now - tweetTime;
	
	var daysBetween;
	var hoursBetween;
	var minutesBetween;
	var secondsBetween;
	var rest;
		
	/* calculate days between */
	rest = timeBetween % (24*60*60*1000);
	daysBetween = (timeBetween-rest) /(24*60*60*1000);
	
	/* calculate hours between */
	tmp = rest % (60*60*1000);
	hoursBetween = (rest-tmp) / (60*60*1000);
	
	rest = tmp;
	/* calculate minutes between */
	tmp = rest % (60*1000);
	minutesBetween = (rest-tmp) / (60*1000);
	
	rest = tmp;
	
	/* calculate seconds between */
	tmp = rest % 1000;
	secondsBetween = (rest- tmp) / 1000;
	switch (daysBetween){
		case 0:
			/* tweeted today */
			switch (hoursBetween){
				case 0:
				/* tweeted within the last hour */
					switch (minutesBetween){
						case 0:
							/* tweeted just now */
							return "Just now";
						case 1:
						/* tweeted some minutes ago */
							return minutesBetween + " minute ago";
						default:
							/* tweeted some minutes ago */
							return minutesBetween + " minutes ago";
					}
				case 1:
					/* tweeted more than an hour ago */
					return hoursBetween + " hour ago";
				default:
					/* tweeted more than an hour ago */
					return hoursBetween + " hours ago";
			}
		case 1:
			/* tweeted yesterday */
			return "Yesterday";
		default:
			/* tweeted before */
			return daysBetween + " days ago";
		
	}
}

function convertTimeZone(initialDate){
	var initialTime= initialDate.getTime();
	var now = new Date();
	var offset = now.getTimezoneOffset();
	var newTime = initialTime - (offset*60*1000);

	var newDate = new Date();
	newDate.setTime(newTime);
	
	return newDate;
}

function convertTags(originalText) {
	var newText;
	var searchString;
		
	/* search mentions */
	var mentions;
	mentions = getTags(originalText, "@");
	
	newText = replaceTags(originalText, mentions);
	
	/* search hash tags */
	var hashtags;
	hashtags = getTags(originalText, "#");
	newText = replaceTags(newText, hashtags);
	
	/* url Links */
	var hashtags;
	hashtags = getTags(originalText, "http://");
	newText = replaceTags(newText, hashtags);
	return newText;
}

function getTags(text, tag){
	var result = [];
	var tmpBlank;
	var position;
	
	searchString = text;
	position = searchString.search(tag);
	
	/* search mentions */
	while(position!= -1 && tmpBlank != -1){
		
		tmpBlank = searchString.indexOf(" ", position);
		if (tmpBlank != position + 1){
			if (tmpBlank == -1){
				result.push(searchString.substring(position));
				searchString = "";
			}else {
				result.push(searchString.substring(position, tmpBlank));
				searchString = searchString.substring(tmpBlank + 1);
			}
		} else {
			searchString = searchString.substring(tmpBlank + 1);
		}
		position = searchString.search(tag);
	}
	return result;
}

function replaceTags(text, tags){
	var tag;
	var type;
	var value;
	for(i = 0; i < tags.length; i++){
		tag = tags[i];
		type = tags[i].substring(0,1);
		value = tags[i].substring(1);
		switch (type){
			case "@":
				text = text.replace(tag, "<a class='twitterLink' href='http://www.twitter.com/intent/user?screen_name=" + value + "'>" + tag + "</a>");
				break;
			case "#":
				text = text.replace(tag, "<a class='twitterLink' href='http://www.twitter.com/search?q=" + value + "'>" + tag + "</a>");
				break;
			default:
				text = text.replace(tag, "<a class='twitterLink' href='" + tag + "'>" + tag + "</a>");
			break;
		}
	}
	return text;
}

function printErrorMessage(){
	var html = [''];
	html.push("<div class='tweet'>Due to a IE9 problem with the Twitter API, the news feed cannot be shown in IE9. We're working on this to get it fixed as soon as possible.</div>");
	document.getElementById('tweetsHome').innerHTML = html.join('');
}
