$(document).ready(function(){
	var feed;
	readURL(parent.location.hash);
	/*$("#search_term").val("Search term");
	$("#search_term").focus(function(){
		$(this).css("background", "#FFFFCC").val("");
	});
	$("#search_term").blur(function(){
		$(this).css("background", "white");
		var term = $(this).val();
		makeRequest(buildFeedURL( term, 20, 1 ));
	});*/
	
	$("ul#tabCon li").click(function(){
		if( $(this).hasClass("no_click")){
			// don't do anything
		} else {
			maxId = 0;
			$("#ContentArea").html("");
			term = $(this).text();
			makeRequest(buildFeedURL( term, 20, 1 ));
			makeFlickrRequest(buildFlickrURL( term ));			
			parent.location.hash = term;
			changeTermOnUI(term);
			setInterval("autoUpdate()", 5000);
		}
	});

	$("#other_topics_dropdown select").change(function(){
		if( $(this).val() == 'select' ){
			// don't do anything
		} else{
			$("#ContentArea").html("");
			term = $(this).val();
			makeRequest(buildFeedURL( term, 20, 1 ));
			makeFlickrRequest(buildFlickrURL( term ));
			parent.location.hash = term;
			$(".country").each(function(){
				$(this).text(term);
			});
		}
	})
	setInterval("autoUpdate()", 5000);
});
var lastResultText;
var lastResultUser;
var lastResultId;
var lastId;
function changeTermOnUI(term){
	$(".country").each(function(){
		$(this).text(term);
	});
}
function buildFeedURL( term, numRPP, page ){
	var feed = new Array();
	feed[0] = "http://search.twitter.com/search.json?callback=?&q="+ term + "&lang=en&rpp=" + numRPP + "&page=" + page;
	feed[1] = numRPP;
	feed[2] = page;
	return feed;
}
function buildFlickrURL( term ){
	var feed = "http://api.flickr.com/services/feeds/photos_public.gne?tags=" + term + "&tagmode=any&jsoncallback=?&format=json";
	return feed;
}
function makeFlickrRequest( feed ){
	$.getJSON(feed, fcallback);
	function fcallback(resultset){
		$('div#pictures a').html("")
		for( k = 0; k < 20; k++){
			linkToSmallMedia = changeMediumImagesToSmall(resultset.items[k].media.m);
			linkToLargestMedia = changeMediumImagesToLarge(resultset.items[k].media.m);
			linkToLargeMedia = resultset.items[k].media.m;
			linkToFlickrImage = resultset.items[k].link;
			imageTitle = resultset.items[k].title;
			image = "<li id='image_"+ k +"'><a class='thickbox' href='"+ linkToLargeMedia + "?height=300&width=300'><img src='"+ linkToSmallMedia +"' alt='"+ imageTitle +"' /></a></li>";
			
			$('div#pictures a').eq(k).attr("href", linkToLargestMedia + "?height=400&width=400").attr("title", imageTitle + ": " + linkToFlickrImage);
			image = "<img src='"+ linkToSmallMedia +"' alt='"+ imageTitle +"' />"
			$('div#pictures a').eq(k).append(image);
			//viewLargerImage( linkToLargeMedia, linkToSmallMedia, k );
		}
	}
}
function viewLargerImage( largeImageURL, smallImageURL, imageNumber){
	$("#image_" + imageNumber + " img").hover(
		function(){
			$(this).attr("src", largeImageURL);
		},
		function(){
			$(this).attr("src", smallImageURL);
		}
	);
}
function changeMediumImagesToSmall(url){
	var ending = ".jpg"
	var beginning = url.substring(0, 58);
	url = beginning + "s" + ending;
	return url; 
}
function changeMediumImagesToLarge(url){
	var ending = ".jpg"
	var beginning = url.substring(0, 57);
	url = beginning + ending;
	return url; 
}
function makeRequest(feed, for_autoupdate){
	$.getJSON(feed[0], tcallback);
	function tcallback(resultset){
		for( i = 0; i < (feed[1]); i++ ){
			maxId = resultset.max_id;
			tweetId = resultset.results[i].id;
			tweetText = linkURLs(resultset.results[i].text);
			profileImage =  "<a target='_blank' href='http://twitter.com/"
							+ resultset.results[i].from_user 
							+ "'>"
							+ "<img class='profile_img' src='"
							+ resultset.results[i].profile_image_url
							+ "'/></a>";
			fromUser = 		"<a href='http://twitter.com/"
							+ resultset.results[i].from_user 
							+ "'>"
							+ resultset.results[i].from_user
							+ "</a> said: "
			reTweet =		" <a target='_blank' class='rt_this' href='http://twitter.com/home/?status=RT @"
							+ resultset.results[i].from_user
							+ " "
							+ escape(resultset.results[i].text)
							+ "'>Retweet This</a> ";
			favorite = 	" <a target='_blank' class='fav_this' href='http://twitter.com/favorites/create/"
							+ resultset.results[i].id
							+ ".xml'>Favorite</a>";
			tweet = 		  profileImage
							+ fromUser
							+ tweetText;
			postedAt = 	"<div class='posted_at' id='time_"
							+ new Date().valueOf()
							+ "' title='"
							+ resultset.results[i].created_at
							+ "'>" 
							+ formatDateTime(resultset.results[i].created_at)
							+ "</div>";				
			
			if(for_autoupdate){
				if( tweetId > lastId ){
					var li = "<li style='visibility:hidden' class='title' id='title_" 
								+ refreshed_item_id_count 
								+ "'><div class='tweet'>"
								+ tweet
								+ "</div><div class='tweet_info'>"
								//+ postedAt
								+ reTweet
								+ "</div></li>";
					$("#ContentArea").prepend(li);
					$("#title_" + refreshed_item_id_count).slideDown(800).css({visibility:"visible"});
					lastId = tweetId;
					refreshed_item_id_count++;
					return false;
				} else {
					return false
				}
			} else {
				$("#ContentArea").append("<li class='title'><div class='tweet'>"
											+ tweet
											+ "</div><div class='tweet_info'>"
											//+ postedAt
											+ reTweet
											+ "</div></li>");
				
				lastId = maxId;
			}
			
		}
	}
}
function readURL(hash){
	if( hash ){
		hashLength = hash.length;
		hash = hash.substring(1,hashLength);
		makeRequest(buildFeedURL( hash, 20, 1 ));
		makeFlickrRequest(buildFlickrURL( hash ));
		changeTermOnUI(hash);
	} else {
		makeRequest(buildFeedURL( "israel", 20, 1 ));
		makeFlickrRequest(buildFlickrURL( "israel" ));
	}
}

function formatDateTime(tweetDateTime){
	var date = new Date();
	tweetDateTime = new Date(tweetDateTime);
	//console.log(tweetDateTime);
	//date.setHours(date.getHours() - 6);
	//console.log("Current: " + date + "\nTweet:   " + tweetDateTime);
	
	
	// Compare Years
/*	if( date.getYear() > tweetDateTime.getYear() ){
		console.log( date.getYear() - tweetDateTime.getYear() + " years ago");
	}
	// Compare Months
	else
	if( date.getMonth() > tweetDateTime.getMonth() ){
		console.log( date.getMonth() - tweetDateTime.getMonth() + " months ago");
	}
	// Compare Days
	else
	if( date.getDay() > tweetDateTime.getDay() ){
		console.log( date.getDay() - tweetDateTime.getDay() + " days ago");
	}*/
		
	// Compare Hours
	if( date.getHours() > tweetDateTime.getHours()){
		numHours = date.getHours() - tweetDateTime.getHours();
		if( numHours == 1 ){
			return "1 hour ago";	
		} else {
			return numHours + " hours ago";
		}
	} 
	// Compare Minutes
	else 
	if ( date.getMinutes() > tweetDateTime.getMinutes()){
		numMinutes = date.getMinutes() - tweetDateTime.getMinutes();
		if ( numMinutes == 1 ){
			return "1 minute ago";
		} else {
			return numMinutes + " minutes ago";
		}
	} 
	
	// Compare Seconds
	else 
	if ( date.getSeconds() > tweetDateTime.getSeconds()){
		numSeconds = date.getSeconds() - tweetDateTime.getSeconds();
		if ( numSeconds == 1 ){
			return "1 second ago";
		} else {
			return numSeconds + " seconds ago";
		}
	} 
	
}

function linkURLs(text){
	var returnText = "";
	textArray = text.split(" ");
	textLength = textArray.length;
	for( j=0; j < textLength; j++ ){
		firstLetter = textArray[j].indexOf('http://');
		if( firstLetter != -1 ){
			textArray[j] = "<a target='_blank' href='"+ textArray[j] + "'>" +textArray[j] + "</a>";
		}
		returnText = returnText + textArray[j] + " ";
	}
	return returnText;
}

var refreshed_item_id_count = 0;
function autoUpdate(){
	/*$(".posted_at").each(function(){
		id = $(this).attr("id");
		$("#" + id).text(formatDateTime($("#" + id).attr("title")));	
	}); */
	makeRequest(buildFeedURL( $("h1.country").text(), 10, 1 ), true);
}

