/*
--------------------------------------------
	Huxley Module Javascript Functions
--------------------------------------------
*/


function tweetBubble(user, count, element){
	
	var twitterJSON = "http://twitter.com/status/user_timeline/" + user + ".json?count=" + count + "&callback=?";
	//var twitterJSON = "http://search.twitter.com/search.json?&q=the&from=nettdrone&rpp=10";
	
	$.getJSON(twitterJSON, function(json){
		var tweetResultsHTML = "<div class='tweet'>";
		var OGtweet = json[0].text;

		tweetResultsHTML += "<h2>" + relative_time(json[0].created_at) + " <em>I said:<\/em><\/h2>";
		tweetResultsHTML += "<p class='content'>" + linkTweetElements(json[0].text) + "<\/p>";
		tweetResultsHTML += "<\/div>";
		tweetResultsHTML += "<a href='http://twitter.com/" + user + "' class='account' target='_blank'><span>@" + user + "<\/span><\/a>";
		//tweetResultsHTML += "<a href='http://twitter.com/" + user + "/status/" + json[0].id + "' class='retweet' target='_blank'><span>Retweet<\/span><\/a>";
		tweetResultsHTML += "<a href='http://twitter.com/home/?status=RT+%40" + user + "+" + encodeURIComponent(json[0].text) + "' class='retweet' target='_blank'><span>Retweet<\/span><\/a>";
		
		$(element).html(tweetResultsHTML);
		
		Cufon.replace('#partner_feature h2');
	});

}


function getTweets(user, count, element){

	var twitterJSON = "http://twitter.com/status/user_timeline/" + user + ".json?count=" + count + "&callback=?";
	//var twitterJSON = "http://twitter.com/status/user_timeline/.json?count=" + count + "&callback=?";
	/*
	$.getJSON(twitterJSON, function(json){
		var tweetResultsHTML = "";
		for(var i=0; i<json.length; i++){
			var OGtweet = json[i].text;
			tweetResultsHTML += "<div class='tweet'>";
			tweetResultsHTML += "<p class='content'>" + replaceURLLinkAndText(json[i].text) + "<\/p>";
			tweetResultsHTML += "<\/div>";
		}
		$(element).html(tweetResultsHTML);
		
		Cufon.replace('#partner_feature h2');
	});
	*/
	$.getJSON({
		url: twitterJSON,
		cache: false,
		type: "GET",
		async: true,
		contentType: "application/json; charset=utf-8",
		dataType: "jsonp",
		complete: function(request, status){
			alert(request + '||' + status);
		},
		success: function(json){
			alert('success');
			var tweetResultsHTML = "";
			for(var i=0; i<json.length; i++){
				var OGtweet = json[i].text;
				tweetResultsHTML += "<div class='tweet'>";
				tweetResultsHTML += "<p class='content'>" + replaceURLLinkAndText(json[i].text) + "<\/p>";
				tweetResultsHTML += "<\/div>";
			}
			$(element).html(tweetResultsHTML);
			
			Cufon.replace('#partner_feature h2');
		},
		error:function (request, status, error){
			alert(request+','+ status+','+ error);
		}
		/*error:function (xhr, ajaxOptions, thrownError){
			alert(xhr.statusText + " |||| " + thrownError);
		}*/
	});
}





function freshthrillsTweet(element){
	
	var twitterJSON = "http://twitter.com/status/user_timeline/freshthrills.json?count=5&callback=?";
	
	$.getJSON(twitterJSON, function(json){
		var tweetResultsHTML = "";
		var OGtweet = json[0].text;

		tweetResultsHTML += "<p>" + replaceURLLinkAndText(json[0].text) + "<\/p>";
		//tweetResultsHTML += "<p>" + replaceURLLinkAndText(json[0].text) + "<a href='http://twitter.com/home/?status=RT+%40freshthrills+" + encodeURIComponent(json[0].text) + "' class='retweet' target='_blank'><img src='http://www.freshthrills.com/wp-content/themes/default/images/_ui/icon_retweet.gif' border='0' \/><\/a><\/p>";
		tweetResultsHTML += "<h2 class='followers_count'>" + json[0].user.followers_count + "<\/h2>";
		//tweetResultsHTML += "<a href='http://twitter.com/" + user + "' class='account' target='_blank'><span>@" + user + "<\/span><\/a>";
		//tweetResultsHTML += "<a href='http://twitter.com/" + user + "/status/" + json[0].id + "' class='retweet' target='_blank'><span>Retweet<\/span><\/a>";
		
		$(element).html(tweetResultsHTML);
		Cufon.replace('#landing_twitter h2');
	});

}


function contactTwitter(element){
	var twitterJSON = "http://twitter.com/status/user_timeline/freshthrills.json?count=1&callback=?";
	$.getJSON(twitterJSON, function(json){
		$(element).html(json[0].user.followers_count);
		Cufon.replace('#follow_on_twitter h2');
	});
}


function getTwitterList(user, list, count, element){
	var twitterJSON = "http://api.twitter.com/1/" + user + "/lists/" + list + "/statuses.json?per_page=" + count + "&callback=?";
	
	$.getJSON(twitterJSON, function(json){
		var tweetResultsHTML = "";
		for(var i=0; i<json.length; i++){
			tweetResultsHTML += "<div class='tweet'>";
			var OGtweet = json[i].text;
	
			//tweetResultsHTML += "<h6>" + relative_time(json[0].created_at) + " <em>I said:<\/em><\/h6>";
			tweetResultsHTML += "<a href='http://twitter.com/" + json[i].user.screen_name + "' class='tweet_photo' target='_blank'><img class='photo' src='" + json[i].user.profile_image_url + "' \/><\/a>";
			tweetResultsHTML += "<p class='content'>" + replaceURLLinkAndText(json[i].text) + "<\/p>";
			tweetResultsHTML += "<\/div>";
			//tweetResultsHTML += "<a href='http://twitter.com/" + user + "' class='account' target='_blank'><span>@" + user + "<\/span><\/a>";
			//tweetResultsHTML += "<a href='http://twitter.com/" + user + "/status/" + json[0].id + "' class='retweet' target='_blank'><span>Retweet<\/span><\/a>";
			//tweetResultsHTML += "<a href='http://twitter.com/home/?status=RT+%40" + user + "+" + encodeURIComponent(json[0].text) + "' class='retweet' target='_blank'><span>Retweet<\/span><\/a>";
		}
		
		$(element).html(tweetResultsHTML);
	});
	
}


/*
for(i=0; i<json.length; i++){
var OGtweet = json[i].text;
var photourl = extractURLFromString(OGtweet);
var tweet = replaceURLLinkAndText(OGtweet);

tweetResultsHTML += "<h2>" + relative_time(json[1].created_at) + "<em>I said:<\/em><\/h2>";
tweetResultsHTML += "<p class='content'>" + tweet + "<\/a>";
tweetResultsHTML += "<div class='tweet_result' id='tweet_" + i + "'>";
tweetResultsHTML += "<p class='tags'>" + "No Tags" + "<\/p>";
tweetResultsHTML += "<\/div>";
}
*/




function getFeed2(url, element){
	
    jQuery.getFeed({
        url: "http://www.freshthrills.com/wp-content/themes/default/proxy.php?url=" + url,
        success: function(feed) {
        	alert(feed.title);
        },   
        error: function() {
        	alert("WTF");
        }    
    });
	
	
}


function getFeed(sender, uri) {
    jQuery.getFeed({
        url: 'proxy.php?url=' + uri,
        success: function(feed) {
            jQuery(sender).append('<h2>'
            + '<a href="'
            + feed.link
            + '">'
            + feed.title
            + '</a>'
            + '</h2>');

            var html = '';

            for(var i = 0; i < feed.items.length && i < 5; i++) {

                var item = feed.items[i];

                html += '<h3>'
                + '<a href="'
                + item.link
                + '">'
                + item.title
                + '</a>'
                + '</h3>';

                html += '<div class="updated">'
                + item.updated
                + '</div>';

                html += '<div>'
                + item.description
                + '</div>';
            }

            jQuery(sender).append(html);
        }    
    });
}







function replaceURLLinkAndText(str) {
    var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/i;
    return str.replace(exp,"<a href='$1' target='_blank'>$1<\/a>");
}

function replaceUsernamesWithLinks(str){
	var exp = /@([a-z0-9_]+)/i;
	return str.replace(exp,"<a href='http://twitter.com/$1' target='_blank'>@$1<\/a>");
}


function linkTweetElements(str){
	var http = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gi;
	var users = /@([a-z0-9_]+)/gi;
	var tags = /#([a-z0-9_]+)/gi;
	
	//test = "dssdfgdfg #one #two three #threeeeee etoiuert";
	tweetHttpLinks = str.replace(http, "<a href='$1' target='_blank'>$1<\/a>");
	tweetUsersLinks = tweetHttpLinks.replace(users, "<a href='http://twitter.com/$1' target='_blank'>@$1<\/a>");
	tweetTags = tweetUsersLinks.match(tags);
	tweetTagsRemoved = tweetUsersLinks.replace(tags, "");
	
	if(tweetTags != null){
		var tagsHTML = "<p class='tags'>";
		for(i=0; i<tweetTags.length; i++){
			tagWOHash = tweetTags[i].replace("#", "");
			tagsHTML += "<a href='http://search.twitter.com/search?tag=" + tagWOHash + "' target='_blank'>" + tweetTags[i] + "</a>";
			if(i != tweetTags.length - 1){
				tagsHTML += ", ";
			}
		}
		tagsHTML += "<\/p>";
		return tweetTagsRemoved + tagsHTML;
	} else {
		return tweetTagsRemoved;
	}
}






function extractURLFromString(str){
	var url = /(\w+):\/\/([\w.]+)\/(\S*)/;
	var result = str.match(url);
	if(result != null){
		var fullurl = result[0];
		var protocol = result[1];
		var host = result[2];
		var path = result[3];
	}
	return fullurl;
}

function replaceURLWithHTMLLinks(text) {
    var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/i;
    return text.replace(exp,"<a href='$1'>$1<\/a>"); 
}

function parse_date(date_str) {
	// The non-search twitter APIs return inconsistently-formatted dates, which Date.parse
	// cannot handle in IE. We therefore perform the following transformation:
	// "Wed Apr 29 08:53:31 +0000 2009" => "Wed, Apr 29 2009 08:53:31 +0000"
	return Date.parse(date_str.replace(/^([a-z]{3})( [a-z]{3} \d\d?)(.*)( \d{4})$/i, '$1,$2$4$3'));
}
function relative_time(time_value) {
	var parsed_date = parse_date(time_value);
	var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
	var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
	var pluralize = function (singular, n) {
		return '' + n + ' ' + singular + (n == 1 ? '' : 's');
	};
	if(delta < 60) {
		return 'less than a minute ago';
	} else if(delta < (60*60)) {
		return 'about ' + pluralize("minute", parseInt(delta / 60)) + ' ago';
	} else if(delta < (24*60*60)) {
		return 'about ' + pluralize("hour", parseInt(delta / 3600)) + ' ago';
	} else {
		return 'about ' + pluralize("day", parseInt(delta / 86400)) + ' ago';
	}
}



