jQuery.jQueryRandom = 0;
jQuery.extend(jQuery.expr[":"],
{
  'rand': function(a, i, m, r) {
    if (i == 0)
    {
      jQuery.jQueryRandom = Math.floor(Math.random() * r.length);
    };
    return i == jQuery.jQueryRandom;  
  }
});

jQuery.preloadImages = function(urls)
{
  for(var i = 0; i<urls.length; i++)
  {
    jQuery("<img>").attr("src", urls[i]);
  }
}

jQuery.fn.makeActive = function(markHovered)
{
  this.each(function(i){
    var label = jQuery(this).find('a img').get(0);
    if (label && label.src.substr(-11, 8) != '_active.')
    {
      if (markHovered)
      {
        label.hovered = true;
      }
      label.src = label.src.replace(/.png$/, '_active.png');
    }
  })
}
jQuery.fn.makeInactive = function()
{
  this.each(function(i){
    var label = jQuery(this).find('a img').get(0);
    if (label && label.hovered)
    {
      label.hovered = false;
      label.src = label.src.replace(/_active.png$/, '.png');
    }
  })
}