$(document).ready(function() {
	$(".ajaxRes").click(function(){
		var selected = $(this).attr("href");
		var targetElement = "#content";
		if ($(this).attr("href") == "#twitter"){
			$(targetElement).load("twitter.html");
		} else if($(this).attr("href") == "#blog"){
			$(targetElement).load("blog.html");
		} else if($(this).attr("href") == "#resume"){
			getResume();
		} else if($(this).attr("href") == "#contact"){
			$(targetElement).load("contact.html");
		} else if($(this).attr("href") == "#test"){
			$(targetElement).load("test.html");
		}	
	});
	
	$("#resumeBox").hover(
		function () {
        $("#resume-box").css({"display":"block"});
      },
      function () {
        $("#resume-box").css({"display":"none"});
      }
	);
	
	getTwitterFeed("#twitterfeed","1");
	getBlogFeed("#blogfeed","1");
	
	//CLOSING POPUP
	//Click the x event!
	$("#popupClose").click(function(){
	disablePopup();
	});
	//Click out event!
	$("#backgroundPopup").click(function(){
	disablePopup();
	});
	//Press Escape event!
	$(document).keypress(function(e){
	if(e.keyCode==27 && popupStatus==1){
		disablePopup();
	}
	});
});

var popupStatus = 0;
var monthArray = new Array("Jan", "Feb", "Mar", 
"Apr", "May", "Jun", "Jul", "Aug", "Sep", 
"Oct", "Nov", "Dec");

var getContent = function(url,type, element,level) {
	$(element).html("<div style=\"width:100%;padding:25px 0;font-weight:bold;text-align:center;background:#eee;color:#777\"><p>Loading</p><img src=\"resources/images/loading.gif\"></img></div>");
	var contentStr;
	$.getJSON(url, function(json) {			
		contentStr = processFeed(json,type,level);
		$(element).html(contentStr);   
   });
}

var getBlogFeed = function(targetElement,level) {
	var url = "http://pipes.yahoo.com/pipes/pipe.run?_id=39b3f625aaa688142561722cbb1df2bc&_render=json&_callback=?";
	getContent(url,"blog",targetElement,level);	
}

var getTwitterFeed = function(targetElement,level) {
	var url = "http://twitter.com/statuses/user_timeline.json?screen_name=priyankgandhi&count=18&callback=?";
	getContent(url,"twitter",targetElement,level);	
}

var getResume = function() {
centerPopup();
 //loads popup only if it is disabled  
 if(popupStatus==0){  
 $("#backgroundPopup").css({  
 "opacity": "0.7"  
 });  
 $("#backgroundPopup").fadeIn("fast");  
 $("#popup").fadeIn("fast");  
	popupStatus = 1;  
 }  
}

var processFeed = function(obj,type,level){
	var html_code = [];	
	if(type=="twitter"){	
		for(var i=0;i<obj.length;i++){
			var json = obj[i];
			var text = json.text;
			text = formatTweet(text);
			var create_time = timeAgo(json.created_at);
			
			if(level=="1"){
				return ("<div>"+text+" <div class=\"posttime\">"+create_time+"</div></div>");
			} else {
				html_code.push("<li>"+text+" "+create_time+"</li>");
			}
		}		
	} else if(type=="blog"){		
		for(var i=0;i<obj.count&&i<10;i++){
			var json = obj.value.items[i];			
			var title = json.title;
			var link = json["feedburner:origLink"];
			var day_of_month = json["y:published"].day;
			var month = json["y:published"].month-1;
			var year = json["y:published"].year;
			var date_string = monthArray[month]+" "+day_of_month+", "+year;
			var thumbnail = ""; 
			if (json["media:thumbnail"]) {
				thumbnail = json["media:thumbnail"].url;
			}
			var tags = [];
			if(json.category) {
				for(var j in json.category) {
					tags.push("<span class=\"tags\"><a target=\"_blank\" href=\"http://webtrouble.blogspot.com/search/label/"+json.category[j].term+"\">"+json.category[j].term+"</a></span>");
				}				
			}			
			var content = json.description;
			var tracking = content.slice(content.indexOf("<div class=\"blogger-post-footer\">"));
			content = content.replace(tracking,"");
			content = content.replace(/<span class="fullpost">.*/,"<a href=\""+link+"\">[...]</a>");
			
			if(level=="1") {
				if(i==5){break;}
				html_code.push("<li><div><a href=\""+link+"\">"+title+"</a></div><div class=\"posttime\">"+date_string+"</div></li>");
			} else {
				html_code.push("\
				<li>\
				<div class=\"blogpost\">\
				<h2 class=\"blogtitle\"><a title=\"Permanenet link to "+title+" rel=\"bookmark\" target=\"_blank\" href=\""+link+"\">"+title+"</a></h2>"+(thumbnail?"<span class=\"blogimage\"><img src=\""+thumbnail+"\"></img></span>":"")+"<div class=\"blogdesc\">"+content+"</div>\
				<div class=\"postfooter\">\
				<span class=\"date\"><b>Posted on:</b> "+monthArray[month]+" "+day_of_month+", "+year+"</span>"+(tags.length!=0?"<span class=\"taglib\"><b>Tags:</b> "+tags.join("")+"</span>":"")+"\
				</div>\
				</div>\
				"+tracking+"\
				</li>");	
			}
		}
	}
	return "<ul>"+html_code.join("")+"</ul>";
}

var formatTweet = function(tweet) {
	tweet = tweet.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/i,"<a target=\"_blank\" href=\"\$1\">\$1<\/a>");
	tweet = tweet.replace(/\B@([_a-z0-9]+)/i,"<a target=\"_blank\" href=\"http://www.twitter.com/\$1\">@\$1<\/a>");
	tweet = tweet.replace(/\B#([_a-z0-9]+)/i,"<a target=\"_blank\" href=\"search.twitter.com/search?q=\$1\">#\$1<\/a>");
	return tweet;
}

//centering popup
function centerPopup(){
//request data for centering
var windowWidth = document.documentElement.clientWidth;
var windowHeight = document.documentElement.clientHeight;
var popupHeight = $("#popup").height();
var popupWidth = $("#popup").width();
//centering
$("#popup").css({
"position": "absolute",
"top": windowHeight/2-popupHeight/2,
"left": windowWidth/2-popupWidth/2
});
//only need force for IE6
$("#backgroundPopup").css({
"height": windowHeight
});
}

//disabling popup with jQuery magic!
function disablePopup(){
//disables popup only if it is enabled
if(popupStatus==1){
$("#backgroundPopup").fadeOut("fast");
$("#popup").fadeOut("fast");
popupStatus = 0;
}
}

// This stuff is from twitter
var browser = function() {
      var ua = navigator.userAgent;
      return {
        ie: ua.match(/MSIE\s([^;]*)/)
      };
    }();

var timeAgo = function(dateString) {
	var rightNow = new Date();
	var then = new Date(dateString);
    if (browser.ie) {
        // IE can't parse these crazy Ruby dates
        then = Date.parse(dateString.replace(/( \+)/, ' UTC$1'));
    }
    var diff = rightNow - then;
    var second = 1000,
    minute = second * 60,
    hour = minute * 60,
    day = hour * 24,
    week = day * 7;
    if (isNaN(diff) || diff < 0) {
		return ""; // return blank string if unknown
    }
    if (diff < second * 7) {
        // within 7 seconds
		return "right now";
    }
    if (diff < minute) {
        return Math.floor(diff / second) + " seconds ago";
    }
    if (diff < minute * 2) {
		return "about 1 minute ago";
    }
    if (diff < hour) {
        return Math.floor(diff / minute) + " minutes ago";
    }
    if (diff < hour * 2) {
        return "about 1 hour ago";
    }
    if (diff < day) {
        return  Math.floor(diff / hour) + " hours ago";
    }
    if (diff > day && diff < day * 2) {
        return "yesterday";
    }
    if (diff < day * 365) {
        return Math.floor(diff / day) + " days ago";
    }
    else {
        return "over a year ago";
    }
};


