/**
 * Automagnifier
 * 
 * @version $Id$
 */
Automagnifier = function(config) {
  // configurable {
  this.images = null; // required
  this.images_selector = '' // required
  this.auto_init = true; 
  this.preview_path = 'preview/';
  // }
  $.extend(this, config);
  
  this.magnifier = null;
 
  if(this.auto_init)
    this.init(); 
}

Automagnifier.prototype = {
  init: function() {
    if(this.images.length() == 0)
      return;
      
    this.createMagnifier();
    this.initEvents();
  },
  
  initEvents: function() {
    $(this.images_selector).click($.proxy(this.onImageClick, this));
  },
  
  createMagnifier: function() {
    if(this.images.length() == 1) {
      this.magnifier = new Magnifier3.MagnifyWin();
      return;
    }
    
    var images = [];
    for(var i = 0, l = this.images.length(); i < l; i ++) {
      var image = this.images.images[i];
      images.push([ image.image.src, this.previewToNormal(image.image.src), image.alt ]);
    }
    
    this.magnifier = new Magnifier3.MultiImageMagnifyWin({
      images: images
    });
  },
  
  previewToNormal: function(src) {
    return src.replace(this.preview_path, '');
  },
  
  findImage: function(src) {
    for(var i = 0, l = this.images.length(); i < l; i++) {
      if(this.images.images[i].image.src == src)
        return this.images.images[i];
    }    
    return false;
  },
  
  onImageClick: function(e) {
    var image = this.findImage(e.target.src);
    if(image === false)
      return;
      
    this.magnifier.showImage(this.previewToNormal(image.image.src), image.alt);
  }
}

