/*  Hey there. This is the tianapeterson.com javascript. (Goes great with moooooo.)
/*____________________________________*/


var SlideShow = new Class({
	initialize: function(wrap,cur) {
		this.slides = new Array();
		var els = $$('#' + wrap + ' div.slide');
		for(var i=0;i<els.length;i++){
			this.slides.push(new Slide(els[i]));
		}
		this.total = i;
		this.current = cur;
		// setup load event
		if(!window.loaded) {
			window.onload = function(){this.slides[this.current].show();}.bind(this);
		}
		else {
			this.slides[this.current].show();
		}
		this.prevlink = $('prev');
		this.nextlink = $('next');
		//  onclick
		this.nextlink.onclick = this.nextslide.bindAsEventListener(this);
		this.prevlink.onclick = this.prevslide.bindAsEventListener(this);

	},
	nextslide: function() {
		this.next = this.current + 1;
		if(this.next >= this.total) {
			this.next = 0;
			for(var i=1;i<this.current;i++){
				this.slides[i].disappear();
			}
			this.doshow('prev');
		}
		else {
			this.doshow('next');
		}
		return false;
	},
	prevslide: function() {
		this.next = this.current - 1;
		if(this.next < 0) {
			this.current = 0; // prevent double-clicking strangeness
			this.next = this.total - 1;
			this.doshow('next');
		}
		else {
			this.doshow('prev');
		}
		return false;
	},
	doshow: function(direction) {
		if(direction == 'next') { 
			//this.slides[this.next].effect.start(0,1);
			if(this.slides[this.current].is_video) {
				this.slides[this.current].hide_video();}
			this.slides[this.next].show();
		}
		else { // Previous
			this.slides[this.next].appear(); //make sure it's showing (not clear why that's necssary except for video)
			this.slides[this.current].hide();
		}
		this.current = this.next;
	}
});





var Slide = new Class({
	initialize: function(element) {
		this.el = $(element);
		//this.el.setOpacity(0);
		this.videos = this.el.getElementsByClassName('video');
		this.is_video = this.videos.length;
		if(this.is_video) {
			// alert('hiding video');
			this.hide_video();
			};
		this.el.setStyle('opacity',0);
		// this.height = this.el.style.height;
		this.el.setStyles({display: 'block'});
		this.effect = new Fx.Style(this.el, 'opacity', {duration:800,wait:false,transition: Fx.Transitions.quartInOut});
	},
	hide: function() {
		this.effect.start(1,0);
		if(this.is_video) {this.hide_video();};
		//this.el.setStyles({display: 'none'}); 
	},
	show: function() {
		if(this.is_video) {this.show_video();}
		this.el.setStyles({display: 'block'});
		this.effect.start(0,1);
	},
	appear: function() {
		this.el.setOpacity(1);
		if(this.is_video) {this.show_video();};
	},
	disappear: function() {
		this.el.setOpacity(0);
		if(this.is_video) {this.videos[0].setStyles({display:'none'}); };
	},
	show_video: function() {
		this.videos[0].setStyles({display:'block'});
	},
	hide_video: function() {
		this.videos[0].setStyles({display:'none'});
	}
});



