var social = {
  loadFeed: function(network, container, params) {
      
    container = $('#' + container);
	       
    container.append('<p class="loading"><img src="/content/shared/img/common/feed-loader.gif" alt="" /> Feed loading...</p>');
    $.ajax({
      type: 'get',
      url: '/services/feeds/' + network + '/json',
      data: params,
      dataType: 'json',     
      
      success: function(data) {
                
        //console.log(network, data);
       
        if (data) {         
				
          var list = $('<ul>');
          for (var i in data.entries) {
            var entry = data.entries[i];					   
            var item = $('<li>');  
            if(entry.image && network == 'youtube'){
              item.append('<p><a href="'+ entry.url +'"><img src="' + entry.image + '" alt="' + entry.content + '" width="100" /><span class="play-overlay">play</span></a></p>');            
              item.append('<p><span class="time">' + social.secondsToTime(entry.size) + '</span><a href="'+ entry.url +'">'+ entry.title  +'</a></p>');
            }else{
              item.append('<p>' + entry.content + '<span class="time">' + social.relativeTime(entry.published) + '</span></p>');
            }
			            
            list.append(item);
          }
          container.find('p.loading').remove();
          container.append(list);
          if (targetExternalLinks) {
            targetExternalLinks(container);
          }
        }
      },
      error: ajaxFailure
    });
  },
	
  showFeeds: function() {
    $('#content div.social').addClass('social-java');
  },

  relativeTime: function(time_value) {
   
    var parsed_date =  new Date(time_value);       
    var relative_to = new Date();
    var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
   
    if (delta < 60) {
      return 'less than a minute ago';
    } else if (delta < 120) {
      return 'about a minute ago';
    } else if (delta < (60 * 60)) {
      return (parseInt(delta / 60)).toString() + ' minutes ago';
    } else if (delta < (120 * 60)) {
      return 'about an hour ago';
    } else if (delta < (24 * 60 * 60)) {
      return 'about ' + (parseInt(delta / 3600)).toString() + ' hours ago';
    } else if (delta < (48 * 60 * 60)) {
      return '1 day ago';
    } else {
      return (parseInt(delta / 86400)).toString() + ' days ago';
    }
  },

  secondsToTime:function (sec)
  {
    var hr = Math.floor(sec / 3600);
    var min = Math.floor((sec - (hr * 3600))/60);
    sec -= ((hr * 3600) + (min * 60));
    sec += '';
    min += '';
    while (min.length < 2) {
      min = '0' + min;
    }
    while (sec.length < 2) {
      sec = '0' + sec;
    }
    hr = (hr)?':'+hr:'';
    return hr + min + ':' + sec;
  },

  recordClickEvent: function($type){
        
    $.ajax({
      type: 'post',
      data: {
        type: $type,
        url: location.pathname
      },
      url: '/social/rate/json',
      dataType: 'json',
      success: function(data) {
        social.getCounts();
      },
      error: ajaxFailure
    });
    return false;
  },

  facebook: {
    loginHandler: function() {
      FB.login(function(response) {
        if (response.session) {
          social.facebook.onLogin();
        } else {
      /*
                    * Although the example code says this should be called when
                    * the user cancels out of the login process, it isn't.
                    * You've got to love Facebook.
                    */
      }
      });
    },

    onLogin: function() {
      window.location.href = fb_callback;
    },

    onLike: function(url) {
      social.recordClickEvent('facebook');
      return false;
    },
		
    onRender: function() {
    }
  },

  twitter: {
    onTweet: function() {
      social.getCounts();
    }
  },
	
  getCounts: function() {
    $.ajax({
      type: 'get',
      url: '/social/counts/json',
      data: {
        url: location.pathname
      },
      dataType: 'json',
      success: function(data) {
        $('span.comment-count').text(data.comments);
        $('span.like-count').text(data.likes);
        $('span.tweet-count').text(data.tweets);
      },
      error: ajaxFailure
    });
  }
}

