var Slideshow = {
  
  init: function(){

    if ($$F('.showcase .container') != undefined) Slideshow.start();
    
  },
  
  start: function(){
    var current = 'slide-1';
    
		$$('.slides .slide').each(function(el, i){
			if (i > 0) new Effect.Opacity(el, { from: 1, to: 0, duration: 0 });
		});

    $$('.slides-navigation li').each(function(el){      
      el.select('a')[0].observe('click', function(e){
        Event.stop(e);
        
				Slideshow.resetLinks();
        Slideshow.fade('out', current);
				
        current = Slideshow.parseAnchor(el);

				Slideshow.disableLink(el);
        Slideshow.fade('in', current);
      });
    });
    
    $$('a.next-slide').each(function(el){
      el.observe('click', function(e){
				Event.stop(e);
				
				Slideshow.resetLinks();
        Slideshow.fade('out', current);
				current = Slideshow.showNextSlide(current);
      });
    });
  },

	showNextSlide: function(current){
		var i 			= parseInt(current.replace(/slide-/, ''));
		var el 			= $$('.slides-navigation li')[i];
		var current = Slideshow.parseAnchor(el);
		
		Slideshow.disableLink(el);
		Slideshow.fade('in', current);
		
		return current;
	},
	
	parseAnchor: function(el){
		return el.select('a')[0].getAttribute('href').replace(/(.*)#/, '');
	},
	
	fade: function(type, id){
    if ($(id).hasClassName('invisible')) $(id).removeClassName('invisible');

		
		switch(type){
			case 'in':
				Effect.Appear(id, { duration: 0.5 });
			break;
			case 'out':
				Effect.Fade(id, { from: 1, to: 0, duration: 0.5 });
			break;
		}
	},
	
	disableLink: function(el){
		el.select('a')[0].clsHide();
		el.select('strong')[0].clsShow();
	},
	
	resetLinks: function(){
		$$('.slides-navigation li').each(function(el){
			el.select('a')[0].clsShow();
			el.select('strong')[0].clsHide();
		});
	}
  
}

document.on("dom:loaded", Slideshow.init);
