/*
	Copyright James Matteson 2011. All rights reserved.
*/
var myDigg = new digg();

function digg(){
   var oThis = this;
   var appKey = 'http%3A%2F%2Fuserrule.com';
   var currentOffset = 0;
      
   function getEndPoint(diggParams){
      var point = '/stories';
      var canSort = true;
            
      if (diggParams.topic.length > 0){
         point += '/topic/' + diggParams.topic;
      }else if (diggParams.container.length > 0){
         point += '/container/' + diggParams.container;
      }
      
      if (diggParams.section.length > 0)
         point += '/' + diggParams.section;
      if (diggParams.section == 'top' || diggParams.section == 'hot')
         canSort = false;
      
      return {'point': point, 'canSort': canSort};
   }
   function getEpoch(d){
      return d.getTime() / 1000.0;
   }
   
   this.fetchUserDiggs = function(username, count, offset, isFriends, callback){
      var p_url = "http://digg.com/tools/services?endPoint=/user/" + username;
      if (isFriends) p_url += "/friends";
      p_url += "/dugg";
      p_url += "&appkey=" + appKey;
      p_url += "&type=javascript";
      p_url += "&callback=" + callback;
      p_url += "&count=" + count;
      p_url += "&offset=" + offset;
      utils.attachScriptSearch(p_url);
   }
   this.fetchContainers = function(callback){
      var p_url = "http://digg.com/tools/services?endPoint=/containers";
      p_url += "&appkey=" + appKey;
      p_url += "&type=javascript";
      p_url += "&callback=" + callback;
      utils.attachScriptSearch(p_url);
   }
   this.fetch = function(callback, diggParams, offset){
      var p_url = "";
      var endPoint = getEndPoint(diggParams);
     
      if (offset == null) offset = 0;
      currentOffset = offset;
            
      p_url += "http://digg.com/tools/services?";
      p_url += "endPoint=" + endPoint.point;
      p_url += "&appkey=" + appKey;
      p_url += "&type=javascript";
      p_url += "&callback=" + callback;
      p_url += "&count=" + diggParams.count;
      p_url += "&offset=" + offset;
      
      if (diggParams.type.length > 0){
         p_url += "&media=" + diggParams.type;
      }
      if (endPoint.canSort){
         p_url += "&sort=" + diggParams.sort;
      }
      if (diggParams.domain.length > 0){
         var timeFrame = new Date();
         var useTime = true;
         
         p_url += "&domain=" + diggParams.domain;
         
         if (diggParams.time == 'day'){
            timeFrame.setDate(timeFrame.getDate() - 1);
         }else if (diggParams.time == 'week'){
            timeFrame.setDate(timeFrame.getDate() - 7);
         }else if (diggParams.time == 'month'){
            timeFrame.setDate(timeFrame.getDate() - 30);
         }else if (diggParams.time == 'year'){
            timeFrame.setDate(timeFrame.getDate() - 365);
         }else{
            useTime = false;
         }
         
         if (useTime){
            p_url += "&min_submit_date=" + getEpoch(timeFrame).toFixed(0);
         }
      }
      
      utils.attachScriptSearch(p_url);
   }
   this.fetchMore = function(callback, diggParams){
      oThis.fetch(callback, diggParams, currentOffset + diggParams.count);
   }
   this.fetchStories = function(callback, storyIDs){
      var p_url = "";
            
      p_url += "http://digg.com/tools/services?";
      p_url += "endPoint=/stories/" + storyIDs;
      p_url += "&appkey=" + appKey;
      p_url += "&type=javascript";
      p_url += "&callback=" + callback;
      utils.attachScriptSearch(p_url);
   }
}
