// JavaScript Document
jQuery(document).ready(function($){

    //Nav Menu Animation
    $('#nav_menu li').hover(function(){
        $('ul', this).slideDown('slow');
    }, function(){
        $('ul', this)
            .stop(true,true)
            .hide();
    });
    
    //Search input box focus color change
    $('#searchform input').focus(function(){
        $(this).css('color','#4b4b4b');
    });
    
     
    //Get last tweet from users
    $('#twitter div').each(function() {
        var handle = $(this).attr('id');
        tweet(handle);
    });
    
    $.getJSON('http://search.twitter.com/search.json?ref=redhousemedia&rpp=3&callback=?', function(data){
        $.each(data.results, function(index, item){
            $('#twitter .mentions').append('<li class="tweet"><img src="' + item.profile_image_url + '" alt="avatar" /><div class="tweet_data"><p>' + item.text.linkify() + '</p><span class="twitter_meta">' + relative_time(item.created_at) + ' from <a href="http://twitter.com/'+item.from_user+'" target="_blank" title="reply to author">@'+item.from_user+'</a></span></div></li>');
            });
        });
    
});

// Function to convert plain text url's into hypertext
String.prototype.linkify = function() {
    return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/, function(m) {
        return m.link(m);
    });
};


// Function to pull in twitter feed
function tweet(username) {
    jQuery.getJSON('http://twitter.com/statuses/user_timeline/'+username+'.json?count=1&callback=?', function(data){
        jQuery.each(data, function(index, item){
            jQuery('#'+username+'').html('<li class="tweet"><img src="' + item.user.profile_image_url + '" alt="avatar" /><div class="tweet_data"><p>' + item.text.linkify() + '</p><span class="twitter_meta">' + relative_time(item.created_at) + ' from  <a href="http://twitter.com/'+username+'" target="_blank" title="reply to author">@'+username+'</a></span></div></li>');
        });
    });
}

// Function to parse a twitter time string into more readable text
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;
};