(function($)
{
   $.fn.extend(
   {
      update_thumbs: function(options)
      {
         var defaults = 
         {
            subdomains: ['i', 'i2', 'i3', 'i4'],
            placeholder: 'placeholder.gif',
            unavilable: 'unavilable.gif'
         }
         
         options = $.extend(defaults, options);
         
         for ( var index=0; index<this.length; index++ )
         {
            $(this[index])
            .attr(
            {
               'src': options.placeholder,
               'urlindex': 0
            })
            .error(function()
            {
               var urlindex = parseInt($(this).attr('urlindex'));
                         
               if ( urlindex == -1 )
               {
                  return;               
               }
               
               urlindex = ( urlindex >= options.subdomains.length ) ? -1 : urlindex+1;
               
               var src = ( urlindex == -1 ) ? options.unavilable : 'http://'+options.subdomains[urlindex]+'.ytimg.com/vi/'+$(this).attr('item')+'/default.jpg';
               
               $(this).attr(
               {
                  'src': src,
                  'urlindex':urlindex
               });
            }); 
      
            $(this[index]).attr('src', 'http://'+options.subdomains[0]+'.ytimg.com/vi/'+$(this[index]).attr('item')+'/default.jpg');
         }
      },
      update_ratings: function(options)
      {
         defaults = 
         {
            post_url: '',
            rating_image: 'star.jpg'
         };
         
         options = $.extend(defaults, options);
         
         var score = [];
         
         jQuery.each(this, function(i,item)
         {
            var entry = $(item).attr('rateof');
      
            if ( ! in_array(entry, score) )
            {
               jQuery.post(options.post_url, {id:entry}, function(json)
               {
                  var row;
                  
                  if ( json.rating > 0 )
                  {
                     for ( var i=1; i<=json.rating; i++ )
                     {
                        row += '<dt><img src="'+options.rating_image+'" /></dt>';
                     }
                     
                     $(row).appendTo('.rating[rateof='+entry+']');
                  }
                  
                  $('.view-count[viewcount='+entry+']').text(json.view_count);
               }, 'json');
            }
            
            score[i] = entry;
         });
      }
   });
})(jQuery);