/*
* jQuery kidyos stream component
* connects to kidyos, gets an item stream and shows thumbnails as links
* can autorefresh and keeps a result window to minimize pings to server
*/
(function($) {

  
  $.fn.kidyos_stream = function(options) {
    var version = '1.1.0';

    // options
    var settings = $.extend({}, $.fn.kidyos_stream.defaults, options);

    return this.each(function() {
      $this = $(this);

      $this.timerID = null;


      //console.log("hi from kidyos_stream--r w there yet?");

      $.fn.kidyos_stream.loadData($this, settings);


//      function(data) {
//          console.log(data);
//         $(data).find('item').each( function() {
//             console.log("item " + $(this).attr('name'));
//          });
//      });
    });
  }

  $.fn.kidyos_stream.loadData = function(el, settings) {
      //console.log("TRYING:" + settings.loadURL);
      $(el).find("#loading").show();
      $.getJSON(
      settings.loadURL, null, function(data,textStatus) {
          //console.log("got data:" + data.items.length);
                    
//          $(data.items).each(function(i,item) {
//              console.log("" + i + "]" + item.name + "::" + item.type + "--" + item.thumbURL);
//          });

//          console.log("moving on...");
          el.items = data.items;
          //console.log(el.items);
          el.currentItem = 0;
          $.fn.kidyos_stream.showData(el, settings);
          
      });
  }

  $.fn.kidyos_stream.showData = function(el, settings) {
    $(el).find("#loading").hide();

    //console.log(el.items.length);
    if (el.items.length == 0) {
        //console.log("items is empty!");
        el.html(settings.emptyText)
    }
    
    $(el.items).slice(el.currentItem, el.items.length).each (function(i) {
        var link = $.fn.kidyos_stream.getItemLink($(this));
            //el.append('<li><a href="' + link + '"><img id="thumb' + i + '" src="' + $(this).attr("thumbURL") + '"></li>');
          
        var imgTAG = $(el).find('#t' + i);
        var captionTAG = $(el).find('#c' + i);
        var captionText = $(this).attr('name');
        var thumb = $(this).attr("thumbURL")

        
        imgTAG.fadeOut(500, function() {
            if ((captionTAG) && (captionText))
                captionTAG.html(captionText);
            imgTAG.attr('src', thumb);
            imgTAG.fadeIn(500);
        })
        
        $(el).find('#l' + i).attr('href', link);

     
        el.currentItem++;
        if (i >= settings.thumbCount - 1 )
            return false;
    });

    if (settings.refreshRate > 0)
        if (el.currentItem >= el.items.length) // out of items to show... AJAX some more
            $.fn.kidyos_stream.loadData(el, settings);
        else // have more items in item queue... wait and reload
            setTimeout(function(){$.fn.kidyos_stream.showData(el, settings)}, settings.refreshRate);

    
  }

  $.fn.kidyos_stream.getItemLink = function(item) {
     var t = item.attr('type');

    if (t == 'vidcat')
        return "/eck/?set/" + item.attr('id');

    if (t == 'viduser')
        return "/eck/?user/" + item.attr('id');

    if (t == 'vid')
       return "/eck/?set/my_vid/" + item.attr('id');

    return "/eck/";
  }

  // plugin defaults  
  $.fn.kidyos_stream.defaults = {
    thumbCount: 5,
    loadURL: "/recommends/do.php",
    refreshRate: 20000,
    emptyText: "<p>loading...</p>"
  };

})(jQuery);
