var Class = {create: function() {return function() {this.initialize.apply(this, arguments);}}}
Function.prototype.bind = function(object) {var __method = this;return function() {__method.apply(object,arguments);}}
Array.prototype.each = function(func){for(var i=0; i<this.length; i++) func(this[i], i);}
function $(obj) { return document.getElementById(obj); }
function $$(n,ntag,nclass) {
  var nres = new Array();
  if (n == null) return;
  var els = $(n).getElementsByTagName(ntag);
  var pattern = new RegExp("(^|\\s)"+nclass+"(\\s|$)");
  if (!nclass) {
    for (i = 0; i < els.length; i++) nres[i] = els[i];
  } else {
    for (i = 0, j = 0; i < els.length; i++) {
      if (pattern.test(els[i].className)) {
        nres[j] = els[i];
        j++;
      }
    }
  }
  return nres;
}

function mke(ntag,nid,nclass,nhtml) {
  o = document.createElement(ntag);
  if (nclass) o.className = nclass;
  if (nid) o.id = nid;
  if (nhtml) o.innerHTML = nhtml;
  return o;
}

Viewer = Class.create();
Viewer.prototype = {
  initialize: function(nid) {
    this.thumbs = $$('img-list','a','');
    if (this.thumbs.length>1) {
      this.viewer = $(nid);
      $('img-focus').appendChild(mke('span','ctrls','',''));
      $('ctrls').appendChild(mke('span','viewRight','','<strong>+</strong>'));
      $('ctrls').appendChild(mke('span','viewLeft','','<strong>&ndash;</strong>'));
      this.viewL = $('viewLeft');
      this.viewR = $('viewRight');
      this.ctrls = $$(nid,'span','');
      for (i=0,this.imgs=[]; i<this.thumbs.length; i++) { this.imgs[i]=this.thumbs[i].href; this.thumbs[i].href='javascript:;'; }
      this.mkctrls();
    }
  },
  mkctrls: function() {
    this.cur = 0;
    this.viewL.onmouseover = this.toggle.bind(this.viewL);
    this.viewL.onmouseout = this.toggle.bind(this.viewL);
    this.viewL.onclick = function(){
      this.cur = (this.cur-1<0) ? this.cur : this.cur-1;
      this.load();
    }.bind(this);
    this.viewR.onmouseover = this.toggle.bind(this.viewR);
    this.viewR.onmouseout = this.toggle.bind(this.viewR);
    this.viewR.onclick = function(){
      this.cur = (this.cur+1>this.thumbs.length-1) ? this.cur : this.cur+1;
      this.load();
    }.bind(this);
    this.thumbs.each(function(thumb,i){
      thumb.onclick = function(){
        this.cur = i;
        this.load();
      }.bind(this);
    }.bind(this));
  },
  load: function() {
    this.viewer.getElementsByTagName('img')[0].src = this.imgs[this.cur];
  },
  toggle: function() {
    this.className = (/over/.test(this.className)) ? this.className.replace('over','') : this.className + ' over';
  }
}










