var TINY={};

function $(i){return document.getElementById(i)}
function $$(e,p){p=p||document; return p.getElementsByTagName(e)}

TINY.slideshow=function(){
	this.infoSpeed=this.imgSpeed=this.speed=10;
	this.thumbOpacity=this.navHover=70;
	this.navOpacity=25;
	this.scrollSpeed=5;
	this.letterbox='#fff';
	this.n="slideshow";
	this.c=0;
	this.height=0;
	this.width=0;
	this.thumbHeight=70;
	this.thumbWidth=70;
	this.a=[];
	this.thumbsOption=0;
	this.pause=0;
};

TINY.slideshow.prototype={
	init:function(z,b,f,p,q,t,data){
		var i=0, w=0, h=0;
		this.l=data.slideshow.length;
		this.width=data.width;
		this.height=data.height;
		this.thumbsOption=t;
		this.pausebt=$(p);
		//this.q=$(q);
		this.f=$(z);
		this.r=$(this.info);
		this.o=parseInt(TINY.style.val(z,'width'));
		this.o2=parseInt(TINY.style.val(z,'height'));
		if(this.thumbs){
			var u=$(this.left), r=$(this.right);
			if(this.thumbsOption==0 || this.thumbsOption==1 || this.thumbsOption==2 || this.thumbsOption==6){
				if(this.l>8){
					u.style.display="block";
					r.style.display="block";
					
					
					u.onmouseover=new Function('TINY.scrollVertical.init("'+this.thumbs+'",-1,'+this.scrollSpeed+')');
					u.onmouseout=r.onmouseout=new Function('TINY.scrollVertical.cl("'+this.thumbs+'")');
					r.onmouseover=new Function('TINY.scrollVertical.init("'+this.thumbs+'",1,'+this.scrollSpeed+')');
				}else{
					u.style.display="block";
					r.style.display="block";
					u.style.background="url()";
					r.style.background="url()";
				}
			}else{
				if(this.l>10){
					u.style.display="block";
					r.style.display="block";
					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+')');
				}else{
					u.style.display="block";
					r.style.display="block";
					u.style.background="url()";
					r.style.background="url()";
				}	
			}
			this.p=$(this.thumbs)
		}
		for(i;i<this.l;i++){
			this.a[i]={};
			var  a=this.a[i];
			a.p=data.slideshow[i].image
			if(this.thumbs){
				var g = new Image();
				g.src=data.slideshow[i].thumbnail;				
				this.p.appendChild(g);
				this._resize(g,this.thumbWidth,this.thumbHeight);
				
				if(this.thumbsOption==0 || this.thumbsOption==1 || this.thumbsOption==2 || this.thumbsOption==6){
					//h+=parseInt(g.offsetHeight);
					h+=this.thumbHeight;
					if(i!=this.l-1){
						g.style.marginBottom=this.spacing+'px';
						h+=this.spacing
					}
					this.p.style.height=h+'px';
				}else{
					w+=this.thumbWidth;
					g.style.verticalAlign="middle";
					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.onmouseover=new Function('TINY.alpha.set("thumbnails",100,5)');				
				g.onmouseout=new Function('TINY.alpha.set(this,'+this.thumbOpacity+',5)');
				g.onmouseout=new Function('TINY.alpha.set("thumbnails",'+70+',5)');
				g.onclick=new Function(this.n+'.pr('+i+',1)')
			};
		}
		
		
		if(b&&f){
			b=$(b);
			f=$(f);
			p=$(p);
			
			//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+'.previous(-1,1)');
			f.onclick=new Function(this.n+'.next(1,1)');
			p.onclick=new Function(this.n+'.pauseslidesow()');
			//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)
	},
	
	
	next:function(t,c){
		this.count=0;
		this.pausebt.className="nav-pause";
		this.mv(t,c)
		//var obj=$(this.thumbsbar);
		//TINY.showthumb.set(obj,100,5,1);
	},
	pauseslidesow:function(){
		if(this.pause){
			this.pausebt.className="nav-pause";
			this.pause=0;
			this.count=0;
			this.mv(1,1)		
		}else{
			this.pausebt.className="nav-play";
			this.pause=1;
			clearTimeout(this.lt);
			clearTimeout(this.at)
		}
	},
	previous:function(t,c){
		this.pausebt.className="nav-pause";
		this.count=0;
		this.mv(t,c)
	},
	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;
		
		//this._resize(i);
		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
			}
		}
	},
	_resize: function(img,width,height){		
		var gPreloadingImg = new Element('img', {id: 'loadingImg'});
		var g = new Asset.images([img.src],{  		
		onProgress: function(){	
			gPreloadingImg.setProperty('src', img.src);	
		},
		onComplete: function(){				
			h = gPreloadingImg.height, w = gPreloadingImg.width,
			dh = height / h, dw = width / w;				
			//if (this.options.resize == 'fit')
				dh = dw = dh > dw ? dw : dh;
			//if (this.options.resize == 'fill')
				//dh = dw = dh > dw ? dh : dw;
				
				if(w > width || h > height){
					img.style.width= Math.ceil(w * dw)+"px"
					img.style.height=Math.ceil(h * dh)+"px"
				}
				
			}
		})
		
		
			//img.set('styles', {'height': Math.ceil(h * dh), 'width': Math.ceil(w * dw)});
	},
	le:function(s,c){		
		this._resize(this.i,this.width,this.height);
		this.f.appendChild(this.i);
		
		dh = this.height / parseInt(this.i.offsetHeight), dw = this.width / parseInt(this.i.offsetWidth);
		
		dh = dw = dh > dw ? dw : dh;
		if(parseInt(this.i.offsetWidth) > this.width || parseInt(this.i.offsetHeight) > this.height){
			var w=this.o- Math.ceil(parseInt(this.i.offsetWidth) * dw);
			var h=this.o2-Math.ceil(parseInt(this.i.offsetHeight) * dh);	
		}else{
			var w=this.o-parseInt(this.i.offsetWidth);
			var h=this.o2-parseInt(this.i.offsetHeight);
		}
		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
		}
		if(h>0){
			var t=Math.floor(h/2);
			this.i.style.borderTop=t+'px solid '+this.letterbox;
			this.i.style.borderBottom=(h-t)+'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.pause=0;
			this.at=setTimeout(new Function(this.n+'.mv(1,0)'),this.speed*1000)
		//}
		if(this.a[s].l!=''){
			//this.q.onclick=new Function('window.location="'+this.a[s].l+'"');
			//this.q.onmouseover=new Function('this.className="'+this.link+'"');
			//this.q.onmouseout=new Function('this.className=""');
			//this.q.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;
			this.r.style.height='auto';
			var h=parseInt(this.r.offsetHeight);
			this.r.style.height=0;
			TINY.height.set(this.r,h,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.scrollVertical=function(){
	return{
		init:function(e,d,s){			
			e=typeof e=='object'?e:$(e); var p=e.style.top||TINY.style.val(e,'top');e.style.top=p;
			var l=d==1?parseInt(e.offsetHeight)-parseInt(e.parentNode.offsetHeight):0;e.si=setInterval(function(){TINY.scrollVertical.mv(e,l,d,s)},20)
		},
		mv:function(e,l,d,s){	
		if(e.style.top=="auto"){ var c=0;}else{var c=parseInt(e.style.top);} if(c==l){TINY.scrollVertical.cl(e)}else{var i=Math.abs(l+c); i=i<s?i:s; var n=c-i*d; e.style.top=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){e.style.height=oh+(Math.ceil(Math.abs(h-oh)/s)*hd)+'px'}}
		}
	}
}();

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)}}}();
