


(function($){
    
    var twitter_profile = null;
    
    $.fn.renderLatestTweets = function(options){

        var settings  = {
            ajaxUrl: 'ajax/getTweets.php',
            profile: 'pioneernetwork'    
        };
 
        return this.each(function(){
            
            if (typeof options === 'object' ){
                $.extend( settings, options );
            }
            
            if (twitter_profile==settings.profile){
                return;
            }    

            
        
            var container = $(this);
            
            container.html('');
            
            $.getJSON(settings.ajaxUrl,{account: settings.profile}, function(data){
                
                twitter_profile = settings.profile;
                
                if (!data){
                    container.html('<div class="pal"><p>Oops, somethings wrong.</p></div>')
                    return;   
                }
                
                var list = $('<ul>').attr('id', 'tweets');
                $.each(data, function(index, item){
                    var marginClass = 'mbp';
                    var borderClass = 'separator';
                    if (data.length == index+1){
                        marginClass = '';
                        borderClass = '' 
                    };
                    list.append(
                      '<li class="tweet ' + marginClass + '">'
                    + '<div class="content ' + borderClass + '">'   
                    + '<img class="profile_icon" src="' + item.user.profile_image_url + '" width="48" height="48" alt="Twitter">'
                    + '<p class="text">' 
                    + item.text.trunc(60).linkify()
                    + '</p>'
                    + '<p class="meta">' 
                    + '<span class="time"><a href="http://twitter.com/' + item.user.name + '/status/' + item.id_str + '" title="">' + relative_time(item.created_at) + '</a></span>'
                    + '<span class="web_intent">' 
                    + '<a href="http://twitter.com/intent/retweet?tweet_id=' + item.id_str + '" title="Retweet">Retweet</a>' 
                    + '<a href="http://twitter.com/intent/tweet?in_reply_to=' + item.id_str + '" title="Reply">Reply</a>' 
                    + '<a href="http://twitter.com/intent/favorite?tweet_id=' + item.id_str + '" title="Favorite">Fav</a>' 
                    + '</span>'
                    + '</p>' 
                    + '</div>'
                    + '</li>');
                });
                
                container.append(list);
                
            });

                
        });
          
            
    };
    
    // Convert Twitter API Timestamp to "Time Ago"
    function relative_time(time_value) {
        var values = time_value.split(" ");
        time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
        var parsed_date = Date.parse(time_value);
        var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
        var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
        delta = delta + (relative_to.getTimezoneOffset() * 60);

        var r = '';
        if (delta < 60) {
            r = 'a minute ago';
        } else if(delta < 120) {
            r = 'couple of minutes ago';
        } else if(delta < (45*60)) {
            r = (parseInt(delta / 60)).toString() + ' minutes ago';
        } else if(delta < (90*60)) {
            r = 'an hour ago';
        } else if(delta < (24*60*60)) {
            r = '' + (parseInt(delta / 3600)).toString() + ' hours ago';
        } else if(delta < (48*60*60)) {
            r = '1 day ago';
        } else {
            r = (parseInt(delta / 86400)).toString() + ' days ago';
        }

        return r;
    }; 
    
    
       
})(jQuery);

// Create Usable Links
String.prototype.linkify = function() {
    return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/, function(m) {
        return m.link(m);
    });
};
// Truncate string
String.prototype.trunc = function(n){
    var toLong = this.length>n,
    s_ = toLong ? this.substr(0,n-1) : this;
    s_ = s_.substr(0,s_.lastIndexOf(' '));
    return  toLong ? s_ +'&hellip;' : s_;
};
