/* Author: Michael Leigeber, Website: http://www.scriptiny.com */
var TINY = {};

function T$(i) { return document.getElementById(i) }
function T$$(e, p) { return p.getElementsByTagName(e) }

TINY.slider = function () {
  function slide(n, p) { this.n = n; this.init(p) }
  slide.prototype.init = function (p) {
    var s = this.x = T$(p.id), u = this.u = T$$('ul', s)[0], c = this.m = T$$('li', u), l = c.length, i = this.l = this.c = 0; this.b = 1;
    if (p.navid && p.activeclass) { this.g = T$$('li', T$(p.navid)); this.s = p.activeclass }
    this.a = p.auto || 0; this.p = p.resume || 0; this.r = p.rewind || 0; this.e = p.elastic || false; this.v = p.vertical || 0; s.style.overflow = 'hidden';
    for (i; i < l; i++) { if (c[i].parentNode == u) { this.l++ } }
    if (this.v) {
      ;
      u.style.top = 0; this.h = p.height || c[0].offsetHeight; u.style.height = (this.l * this.h) + 'px'
    } else {
      u.style.left = 0; this.w = p.width || c[0].offsetWidth; u.style.width = (this.l * this.w) + 'px'
    }
    this.nav(p.position || 0);
    if (p.position) { this.pos(p.position || 0, this.a ? 1 : 0, 1) } else if (this.a) { this.auto() }
    if (p.left) { this.sel(p.left) }
    if (p.right) { this.sel(p.right) }
  },
	slide.prototype.auto = function () {
	  this.x.ai = setInterval(new Function(this.n + '.move(1,1,1)'), this.a * 1000)
	},
	slide.prototype.move = function (d, a) {
	  var n = this.c + d;
	  if (this.r) { n = d == 1 ? n == this.l ? 0 : n : n < 0 ? this.l - 1 : n }
	  this.pos(n, a, 1)
	},
	slide.prototype.pos = function (p, a, m) {
	  var v = p; clearInterval(this.x.ai); clearInterval(this.x.si);
	  if (!this.r) {
	    if (m) {
	      if (p == -1 || (p != 0 && Math.abs(p) % this.l == 0)) {
	        this.b++;
	        for (var i = 0; i < this.l; i++) { this.u.appendChild(this.m[i].cloneNode(1)) }
	        this.v ? this.u.style.height = (this.l * this.h * this.b) + 'px' : this.u.style.width = (this.l * this.w * this.b) + 'px';
	      }
	      if (p == -1 || (p < 0 && Math.abs(p) % this.l == 0)) {
	        this.v ? this.u.style.top = (this.l * this.h * -1) + 'px' : this.u.style.left = (this.l * this.w * -1) + 'px'; v = this.l - 1
	      }
	    } else if (this.c > this.l && this.b > 1) {
	      v = (this.l * (this.b - 1)) + p; p = v
	    }
	  }
	  var t = this.v ? v * this.h * -1 : v * this.w * -1, d = p < this.c ? -1 : 1; this.c = v; var n = this.c % this.l; this.nav(n);
	  if (this.e) { t = t - (8 * d) }
	  this.x.si = setInterval(new Function(this.n + '.slide(' + t + ',' + d + ',1,' + a + ')'), 10)
	},
	slide.prototype.nav = function (n) {
	  if (this.g) { for (var i = 0; i < this.l; i++) { this.g[i].className = i == n ? this.s : '' } }
	},
	slide.prototype.slide = function (t, d, i, a) {
	  var o = this.v ? parseInt(this.u.style.top) : parseInt(this.u.style.left);
	  if (o == t) {
	    clearInterval(this.x.si);
	    if (this.e && i < 3) {
	      this.x.si = setInterval(new Function(this.n + '.slide(' + (i == 1 ? t + (12 * d) : t + (4 * d)) + ',' + (i == 1 ? (-1 * d) : (-1 * d)) + ',' + (i == 1 ? 2 : 3) + ',' + a + ')'), 10)
	    } else {
	      if (a || (this.a && this.p)) { this.auto() }
	      if (this.b > 1 && this.c % this.l == 0) { this.clear() }
	    }
	  } else {
	    var v = o - Math.ceil(Math.abs(t - o) * .1) * d + 'px';
	    this.v ? this.u.style.top = v : this.u.style.left = v
	  }
	},
	slide.prototype.clear = function () {
	  var c = T$$('li', this.u), t = i = c.length; this.v ? this.u.style.top = 0 : this.u.style.left = 0; this.b = 1; this.c = 0;
	  for (i; i > 0; i--) {
	    var e = c[i - 1];
	    if (t > this.l && e.parentNode == this.u) { this.u.removeChild(e); t-- }
	  }
	},
	slide.prototype.sel = function (i) {
	  var e = T$(i); e.onselectstart = e.onmousedown = function () { return false }
	}
  return { slide: slide }
} ();


