
var Photos = {
	body:null,
	matte:null,
	img:null,
	make:function(){
		//alert("load ")
		var imgs = document.getElementById("wrap").getElementsByTagName("img");
		for(var i = 0; i < imgs.length; i++){
			var src = imgs[i].getAttribute("src");
			if(imgs[i].className.indexOf("photo") >= 0 && src.match(/_square|_small|_medium/)){
				imgs[i].style.cursor = "pointer";
				imgs[i].onclick = Photos.enlarge;
			}
		}
	},
	enlarge:function(e){
		var ei = new EventInfo(e, true);
		var src = ei.source.getAttribute("src");
		Photos.body = new Element(document.body);
		Window.construct();
		var matte = Photos.body.append("div", "<span>LOADING</span>", 'class="photomatte" style="width:100%;height:100%;" onclick="Photos.delarge();"');
			matte.style.height = Window.height + 'px';
			matte.style.top = Window.scrolledy + 'px';
			
		Photos.matte = new Animation(matte, {alpha:0.01});
		Photos.matte.element.show('block');
		Photos.matte.effect({alpha:90, duration:0.2, fps:1/50, trans:physics.easeOut});
				
		src = src.replace(/_small|_medium|_square/,'_large');
		var img = Photos.body.append("img", false, 'src="'+src+'" style="visiblity:hidden;position:absolute;top:0;left:0;z-index:6002;"');
			img.onload = Photos.onload;
							
		Photos.img = new Animation(img,{alpha:0.01});	
	},
	onload:function(e){
		Window.construct();
		var ei = new EventInfo(e, true);
		Photos.matte.element.setContent("");

		var left = (Window.width/2) - Photos.img.element.getRealWidth()/2;
		var top = (Window.height/2) + Window.scrolledy - (Photos.img.element.getRealHeight()/2);
		
		Photos.img.element.element.style.top = top + 'px';
		Photos.img.element.element.style.left = left + 'px';
		
		Photos.img.element.show();
		Photos.img.effect({alpha:99.9, duration:0.2, fps:1/50, trans:physics.easeOut});
	},
	delarge:function(){
		Photos.img.effect({alpha:0.01});
		Photos.matte.effect({alpha:0.01}, function(){ 
			Photos.body.element.removeChild(Photos.img.element.element);
			Photos.body.element.removeChild(Photos.matte.element.element);
		});
		
	}
	
}

var SlideShow = {
	container:null,
	photos:null,
	cached:null,
	timer:null,
	animate:null,
	displayed:0,
	stopped:false,
	init:false,
	busy:false,
	make:function(layer, delay, speed){
		SlideShow.cached = new Array();
		SlideShow.speed = speed ? speed : 2.5;
		SlideShow.delay = delay ? delay : 5;
		SlideShow.container = new Element(layer);
		SlideShow.photos = new Array();
		var photos = SlideShow.container.getChildren("img");
		for(var p = 0; p < photos.length; p++){
			if(photos[p].className != "detail")
				SlideShow.photos.push(photos[p]);
				
		}
	},
	next:function(){
		//if(!SlideShow.init) return false;	
		window.clearTimeout(SlideShow.timer);
		
		//if(!SlideShow.busy) 
		var current = SlideShow.displayed;
		SlideShow.displayed++;
		
		if(SlideShow.displayed == SlideShow.photos.length){
			SlideShow.displayed = 0;
				//SlideShow.displayArticle(current);
				//return;
				//SlideShow.timer = window.setTimeout(SlideShow.next, 500);
				//return;	
		}
			
		/*if(!SlideShow.iscached(SlideShow.photos[SlideShow.displayed])){	
			SlideShow.displayed--;
			if(SlideShow.displayed == -1){
				SlideShow.displayed = SlideShow.photos.length - 1;	
			}							
			SlideShow.timer = window.setTimeout(SlideShow.next, 500);
			return;	
		}*/
		
		//if(!SlideShow.busy){
			SlideShow.crossfade(current, SlideShow.displayed);	
		//}
		
		if(!SlideShow.Stopped){
			
		}		
	},
	previous:function(){
		if(!SlideShow.init) return false;	
		window.clearTimeout(SlideShow.timer);
		/*if(SlideShow.articleDisplayed){
			var a = new Animation("article", { alpha:99.9 });
				a.effect({alpha:0.01, duration:SlideShow.speed*.4, fps:1/50}, function(){
					a.element.hide('none');			
					if(!SlideShow.busy) var current = SlideShow.displayed;
					SlideShow.displayed--;
					if(SlideShow.displayed == -1){
						SlideShow.displayed = SlideShow.photos.length - 1;				
					}
					if(!SlideShow.busy) SlideShow.crossfade(current, SlideShow.displayed);	
			    });	
		}else{*/
			if(!SlideShow.busy) var current = SlideShow.displayed;
			SlideShow.displayed--;
			if(SlideShow.displayed == -1){
				SlideShow.displayed = SlideShow.photos.length - 1;				
			}
			if(!SlideShow.busy) SlideShow.crossfade(current, SlideShow.displayed);	
		
		
	},
	crossfade:function(fout, fin){
		//fade out anything that's not to be faded in
		for(var p = 0; p < SlideShow.photos.length; p++){
			if(fin != SlideShow.photos[p] && SlideShow.photos[p].style.display == 'block'){
				var o = new Animation(SlideShow.photos[p], {alpha:99.9});
					o.effect({alpha:0.01, duration:SlideShow.speed*.1, fps:1/50}, function(){
						o.element.hide('none');
					});
			}
		}
		var a = new Animation(SlideShow.photos[fout], { alpha:99.9 });
			a.effect({alpha:0.01, duration:SlideShow.speed*.1, fps:1/50}, function(){
				a.element.hide('none');
				
			});
			var b = new Animation(SlideShow.photos[fin], { alpha:0.01 });
					b.element.show('block');
					b.effect({alpha:99.9, duration:SlideShow.speed*.2, fps:1/50}, function(){
						//SlideShow.busy = false;	
						SlideShow.timer = window.setTimeout(SlideShow.next, SlideShow.delay*1000);
					});		
			SlideShow.busy = true;
	},
	restart:function(){
		/*var a = new Animation("article", { alpha:99.9 });
				a.effect({alpha:0.01, duration:SlideShow.speed*.4, fps:1/50}, function(){
					a.element.hide('none');			
				*/
					SlideShow.displayed = 0; //SlideShow.indexof(loaded);
					SlideShow.animate = new Animation(SlideShow.photos[SlideShow.displayed], { alpha:0.01 });
					SlideShow.animate.element.show('block');
					SlideShow.animate.effect({alpha:99.9, duration:SlideShow.speed*.1, fps:1/50});				
					SlideShow.stopped = false;
					SlideShow.timer = window.setTimeout(SlideShow.next, SlideShow.delay*1000);
				//});	
		
	},
	start:function(){
		//SlideShow.timer = window.setTimeout(
		SlideShow.next(); //, 5000);
	},
	stop:function(){
		window.clearTimeout(SlideShow.timer);
		SlideShow.stopped = true;
	},
	loaded:function(show, loaded){
		//center photo in frame
		if(!SlideShow.init){	
			SlideShow.make(show);						
			if(SlideShow.indexof(loaded)==0){
				//var lo = new Animation("loader", {alpha:99.9});
					//lo.effect({alpha:0.01}, function(){
												//document.getElementById("loader").style.display = "none";
												
				SlideShow.displayed = 0; //SlideShow.indexof(loaded);
				SlideShow.animate = new Animation(SlideShow.photos[SlideShow.displayed], { alpha:0.01 });
				SlideShow.animate.element.show('block');
				SlideShow.animate.effect({alpha:99.9, duration:SlideShow.speed*.1, fps:1/50});
				SlideShow.cached.push(loaded);	
				SlideShow.init = true;
				SlideShow.timer = window.setTimeout(SlideShow.next, SlideShow.delay*1000);
				
										//});
					
				
			}
		}else{
			//SlideShow.cached.push(loaded);
		}
		
	},
	iscached:function(img){
		for(var p = 0; p < SlideShow.cached.length; p++){
			if(img == SlideShow.cached[p])
				return p;
		}
		return -1;
	},
	indexof:function(first){
		for(var p = 0; p < SlideShow.photos.length; p++){
			if(first == SlideShow.photos[p])
				return p;
		}
		return -1;
	}
}


//addWindowEventListener("load",Photos.make());