(function($) {
  var SevenOfSpot = function(element, options) {
    
    var el = $(element);
    var obj = this;
    var settings = $.extend({}, options || {});
    
    var _parent,
        _timeoutId,
        _currentId;
    
    var initialize = function() {
      $(window).load(onLoad);
      // _parent = el.parent();
      _parent = el.prev();
      el.find('area').mouseenter(onMouseEnter).mouseleave(onMouseLeave);
    }
    
    // preload images
    var onLoad = function(e) {
      var l = document.location
      var domain = l.protocol + '//' + l.host;
      var images = new Array();
      for (var i = 1; i <= 7; i++) {
        images[i] = new Image();
        images[i].src = domain + '/wp-content/themes/spot/images/bullet_'+i+'.jpg';
      }
    }
    
    var onMouseEnter = function(e) {
      clearTimeout(_timeoutId);
      _currentId = $(this).attr('id');
      _timeoutId = setTimeout(setClass, 50);//, $(this).attr('id'));
    }
    
    var onMouseLeave = function(e) {
      clearTimeout(_timeoutId);
      _currentId = 'all';
      _timeoutId = setTimeout(setClass, 50);//, 'all');
    }
    
    var setClass = function() {
      _parent.removeClass('bullet-1 bullet-2 bullet-3 bullet-4 bullet-5 bullet-6 bullet-7 all').
              addClass(_currentId);
    }
    
    initialize();
  }
  
  $.fn.sevenOfSpot = function(options) {
    return this.each(function() {
      var element = $(this);
      
      // Return early if this element already has a plugin instance
      if (element.data('sevenOfSpot')) return;
      
      // pass options to plugin constructor
      var sevenOfSpot = new SevenOfSpot(this, options);
      
      // Store plugin object in this element's data
      element.data('sevenOfSpot', sevenOfSpot);
    })
  }
  
})(jQuery);
