var TINY={};

function $(i){return document.getElementById(i)}
function $$(e,p){p=p||document; return p.getElementsByTagName(e)}

TINY.slideshow=function(n){
	this.infoSpeed=this.imgSpeed=this.speed=10;
	this.thumbOpacity=this.navHover=70;
	this.navOpacity=25;
	this.scrollSpeed=5;
	this.letterbox='#000';
	this.n=n;
	this.c=0;
	this.a=[]
};

TINY.slideshow.prototype = {
    init: function(s, z, b, f, q) {
        s = $(s);
        var m = $$('li', s), i = 0, w = 0;
        this.l = m.length;
        this.q = $(q);
        this.f = $(z);
        this.r = $(this.info);
        this.o = parseInt(TINY.style.val(z, 'width'));
        if (this.thumbs) {
            var u = $(this.left), r = $(this.right);
            u.onmouseover = new Function('TINY.scroll.init("' + this.thumbs + '",-1,' + this.scrollSpeed + ')');
            u.onmouseout = r.onmouseout = new Function('TINY.scroll.cl("' + this.thumbs + '")');
            r.onmouseover = new Function('TINY.scroll.init("' + this.thumbs + '",1,' + this.scrollSpeed + ')');
            this.p = $(this.thumbs)
        }
        for (i; i < this.l; i++) {
            this.a[i] = {};
            var h = m[i], a = this.a[i];
            //a.t=$$('h3',h)[0].innerHTML;
            a.d = $$('p', h)[0].innerHTML;
            a.l = $$('a', h)[0] ? $$('a', h)[0].href : '';
            a.p = $$('span', h)[0].innerHTML;
            if (this.thumbs) {
                var g = $$('img', h)[0];
                this.p.appendChild(g);
                w += parseInt(g.offsetWidth);
                if (i != this.l - 1) {
                    g.style.marginRight = this.spacing + 'px';
                    w += this.spacing
                }
                this.p.style.width = w + 'px';
                g.style.opacity = this.thumbOpacity / 100;
                g.style.filter = 'alpha(opacity=' + this.thumbOpacity + ')';
                g.onmouseover = new Function('TINY.alpha.set(this,100,5)');
                g.onmouseout = new Function('TINY.alpha.set(this,' + this.thumbOpacity + ',5)');
                g.onclick = new Function(this.n + '.pr(' + i + ',1)')
            }
        }
        if (b && f) {
            b = $(b);
            f = $(f);
            b.style.opacity = f.style.opacity = this.navOpacity / 100;
            b.style.filter = f.style.filter = 'alpha(opacity=' + this.navOpacity + ')';
            b.onmouseover = f.onmouseover = new Function('TINY.alpha.set(this,' + this.navHover + ',5)');
            b.onmouseout = f.onmouseout = new Function('TINY.alpha.set(this,' + this.navOpacity + ',5)');
            b.onclick = new Function(this.n + '.mv(-1,1)');
            f.onclick = new Function(this.n + '.mv(1,1)')
        }
        this.auto ? this.is(0, 0) : this.is(0, 1)
    },
    mv: function(d, c) {
        var t = this.c + d;
        this.c = t = t < 0 ? this.l - 1 : t > this.l - 1 ? 0 : t;
        this.pr(t, c)
    },
    pr: function(t, c) {
        clearTimeout(this.lt);
        if (c) {
            clearTimeout(this.at)
        }
        this.c = t;
        this.is(t, c)
    },
    is: function(s, c) {
        if (this.info) {
            TINY.height.set(this.r, 1, this.infoSpeed / 2, -1)
        }
        var i = new Image();
        i.style.opacity = 0;
        i.style.filter = 'alpha(opacity=0)';
        this.i = i;
        i.onload = new Function(this.n + '.le(' + s + ',' + c + ')');
        i.src = this.a[s].p;
        if (this.thumbs) {
            var a = $$('img', this.p), l = a.length, x = 0;
            for (x; x < l; x++) {
                a[x].style.borderColor = x != s ? '' : this.active
            }
        }
    },
    le: function(s, c) {
        this.f.appendChild(this.i);
        var w = this.o - parseInt(this.i.offsetWidth);
        if (w > 0) {
            var l = Math.floor(w / 2);
            this.i.style.borderLeft = l + 'px solid ' + this.letterbox;
            this.i.style.borderRight = (w - l) + 'px solid ' + this.letterbox
        }
        TINY.alpha.set(this.i, 100, this.imgSpeed);
        var n = new Function(this.n + '.nf(' + s + ')');
        this.lt = setTimeout(n, this.imgSpeed * 100);
        if (!c) {
            this.at = setTimeout(new Function(this.n + '.mv(1,0)'), this.speed * 1000)
        }

        if ((this.a[s].l != '') && (this.a[s].l.lastIndexOf('#') != this.a[s].l.length - 1)) {
            this.i.onclick = new Function('window.location="' + this.a[s].l + '"');
            this.i.onmouseover = new Function('this.className="' + this.link + '"');
            this.i.onmouseout = new Function('this.className=""');
            this.i.style.cursor = 'pointer'
        } else {
            this.q.onclick = this.q.onmouseover = null;
            this.q.style.cursor = 'default'
        }
        var m = $$('img', this.f);
        if (m.length > 2) {
            this.f.removeChild(m[0])
        }
    },
    nf: function(s) {
        if (this.info) {
            s = this.a[s];
            //$$('h3',this.r)[0].innerHTML=s.t;
            $$('p', this.r)[0].innerHTML = s.d;

            if (s.d != '') {
                this.r.style.height = 'auto';
                var h = parseInt(this.r.offsetHeight);
                this.r.style.height = 0;
                
                //alert(this.r + "\n" + h + "\n" + this.infoSpeed);
                TINY.height.set(this.r, h, this.infoSpeed, 0)
            }
            //else
                //TINY.height.set(this.r, 0, this.infoSpeed, 0)
        }
    }
};

TINY.scroll=function(){
	return{
		init:function(e,d,s){
			e=typeof e=='object'?e:$(e); var p=e.style.left||TINY.style.val(e,'left'); e.style.left=p;
			var l=d==1?parseInt(e.offsetWidth)-parseInt(e.parentNode.offsetWidth):0; e.si=setInterval(function(){TINY.scroll.mv(e,l,d,s)},20)
		},
		mv:function(e,l,d,s){
			var c=parseInt(e.style.left); if(c==l){TINY.scroll.cl(e)}else{var i=Math.abs(l+c); i=i<s?i:s; var n=c-i*d; e.style.left=n+'px'}
		},
		cl:function(e){e=typeof e=='object'?e:$(e); clearInterval(e.si)}
	}
}();

TINY.height = function() {
    return {
        set: function(e, h, s, d) {
            e = typeof e == 'object' ? e : $(e); var oh = e.offsetHeight, ho = e.style.height || TINY.style.val(e, 'height');
            ho = oh - parseInt(ho);
            var hd = oh - ho > h ? -1 : 1;
            clearInterval(e.si);
            e.si = setInterval(function() { TINY.height.tw(e, h, ho, hd, s) }, 20);
        },
        tw: function(e, h, ho, hd, s) {
            var oh = e.offsetHeight - ho;
            if (oh == h) {
                clearInterval(e.si);
            } else {
                if (oh != h) {
                    var height = oh + (Math.ceil(Math.abs(h - oh) / s) * hd);
                    if (height < 0)
                        height = "0";

                    e.style.height = height;
                }
            }
        }
    }
} ();

TINY.alpha=function(){
	return{
		set:function(e,a,s){
			e=typeof e=='object'?e:$(e); var o=e.style.opacity||TINY.style.val(e,'opacity'),
			d=a>o*100?1:-1; e.style.opacity=o; clearInterval(e.ai); e.ai=setInterval(function(){TINY.alpha.tw(e,a,d,s)},20)
		},
		tw:function(e,a,d,s){
			var o=Math.round(e.style.opacity*100);
			if(o==a){clearInterval(e.ai)}else{var n=o+Math.ceil(Math.abs(a-o)/s)*d; e.style.opacity=n/100; e.style.filter='alpha(opacity='+n+')'}
		}
	}
}();

TINY.style=function(){return{val:function(e,p){e=typeof e=='object'?e:$(e); return e.currentStyle?e.currentStyle[p]:document.defaultView.getComputedStyle(e,null).getPropertyValue(p)}}}();
