/**
 * Auto magnifier
 * 
 * @version $Id: auto_magnifier.js 404 2009-07-04 18:33:29Z  $
 */
AutoMagnifier = function(config) {
  // configurable {
  this.selector = ''; // required
  this.cut_path = 'preview/';
  this.auto_init = false;
  // }
  
  $.extend(this, config);
  
  if(this.auto_init)
    this.init();
}

AutoMagnifier.prototype = {
  init: function() {
    this._initMarkup();
    this._initMagnifiers();
    this._initEvents();
  },
  
  _initMarkup: function() {
    $(this.selector).click(this.onImageClick.createDelegate(this));
  },
  
  _initEvents: function() {
    $(this.selector).click(this.onImageClick.createDelegate(this));
  },
  
  _initMagnifiers: function() {
    $(this.selector).each(function() {
      var $image = $(this);
      $image.generateId();
      Magnifier.Manager.instance().add(
        $image.attr('id'),
        new Magnifier({ source_selector: $image.getIdSelector() })
      );
    });
  },
  
  onImageClick: function(event) {
    var $image = $(event.target);
    var magnifier = Magnifier.Manager.instance().get($image.attr('id'));
    var src = $image.attr('src').replace(this.cut_path, '');
    magnifier.show(src, $image.attr('title'));
  }
}
