(function($) {
  $.fn.marctvflickrbar = function (o) {
    o = $.extend({
      callback: null,
      api_callback: '?',
      api_key: null,
      headline: 'images',
      user_id: null,
      user_name: null,
      display_limit: 3,
      query_limit: 6
    }, o);

    $.fn.getFlickrData = function (i){
      var flickrbar = $(this);
            
      $.ajax({
        url: 'http://api.flickr.com/services/rest/?format=json&jsoncallback=' + o.api_callback + '&api_key=' + o.api_key + '&method=flickr.photos.search&sort=date-posted-desc&user_id=' + o.user_id + '&per_page=' + o.query_limit + '&page=1',
        dataType: 'jsonp',
        success: function(data) {
          var list = '<ul class="col_container">';
          var item = '';
          
          $.each(data.photos.photo,function(key, photo){
            var flBaseURL = 'http://farm' + photo['farm'] + '.static.flickr.com/' + photo['server'] + '/' + photo['id'] + '_' + photo['secret'];
            
            var flSmallIMG = flBaseURL + '_m.jpg'
            var flIMG = flBaseURL + '.jpg'
            var flTITLE = photo['title'];
            var flID = photo['id'];
          
            if(key < o.display_limit){
               if(key === o.display_limit-1){
                item =  '<li class="col last"><div class="crop">';
              }else if(key === 0){
                item =  '<li class="col first"><div class="crop">';
              }else{
                item =  '<li class="col"><div class="crop">';
              }
             
              item += '<a data-url="' + flID + '" title="' + flTITLE + '" rel="marctvflickrbar' + i + '" href="' + flIMG + '">';
              item += '<span class="sprite fullscreenicon"> </span>';
              item += '<span class="sprite flickrb"> </span>';
              item += '<img src="' + flSmallIMG + '" alt="' + flTITLE + '">';
              item += '</a></div>';
              item += '<div class="title">' + flTITLE + '</div>';
              item += '</li>';
            }else{
              item =  '<li style="display:none;">';
              item += '<a data-url="' + flID + '" title="' + flTITLE + '" rel="marctvflickrbar' + i + '" href="' + flIMG + '"></a>';
              item += '</li>';
            }
            list += item;
          });
          list += '</ul>';
                    
          flickrbar.append('<h2 class="col_title supertitle">' + o.headline + '</h2>').append(list);
          if (o.callback) o.callback(flickrbar,o.user_name);
                    
        }
      });
            
    };
    return this.each(function (i) {
      $(this).getFlickrData(i);
    });
  };
}(jQuery));

