var currentSlideshow = 1;
var projectImages = null;

/* Default Field Value (Dfv) Class */

var zolaks = new Class({
	
    initialize: function(){
    	
    	this.slideshowToolbarStandby = false;
    	this.toolbarTimer = 0;
    	this.showWork = false;
    	
		this.initToolbar();
		this.initNextPreviousBtns();
		this.initWorks();
    },
    
    initToolbar: function() {
    	var mthis = this;
    	
		/* toolbar for home */
		if($defined($('toolbar-home'))) {
			$$('#toolbar-home a').addEvent('click', function() {
				$clear(this.toolbarTimer);
				mthis.slideshowToolbarPause();
				mthis.toolbarEvent(this);
				return false;
			});
			
			/* slideshow toolbar */
			this.slideshowToolbar.periodical(4000, this);
		}
		
		/* toolbar for home */
		if($defined($('toolbar-realisations'))) {
			$$('#toolbar-realisations a.toolbar').addEvent('click', function() {
				mthis.toolbarEventWork(this);
				return false;
			});
		}
    },
    
    
    
    initNextPreviousBtns: function() {
    	var mthis = this;
		/* next */
		if($defined($('next'))) {
			$('next').addEvent('click', function() {
				if(this.getStyle('opacity') == 1) {
					var myElement = $('work-wrapper');
					var wrapperHeight = myElement.getStyle('height');
					var myFx = new Fx.Scroll(myElement, {
						onComplete:function() {
							mthis.updateNextPrevious.delay(50, this);
						}
					}).start(0, 0.5 * document.body.offsetHeight);
				}
				return false;
			});
		}
		
		/* previous */
		
		if($defined($('previous'))) {	
			$('previous').addEvent('click', function() {
				if(this.getStyle('opacity') == 1) {
					var myElement = $('work-wrapper');
					var myFx = new Fx.Scroll(myElement, {
						onComplete:function() {
							mthis.updateNextPrevious.delay(50, this);
						}
					}).start(0, -0.5 * document.body.offsetHeight);
				}
				return false;
			});
		}
		
		if($defined($('next')) || $defined($('previous'))) {
			this.updateNextPrevious();
			this.updateNextPrevious.delay(1000);
		}
    },
    
    
    
    initWorks: function() {
		var mthis = this;
		$$('.rea').setStyle('opacity', 0.6);
		$$('.rea h2').setStyle('bottom', -40);
		$$('.rea h2').setStyle('opacity', 0.9);

		$$('.rea').addEvent('mouseover', function() {
			this.setStyle('opacity', 1)	
			var children = this.getChildren('h2')[0];
			children.setStyle('bottom', 0);
		});
		
		$$('.rea').addEvent('mouseout', function() {
			this.setStyle('opacity', 0.6)	
			var children = this.getChildren('h2')[0];
			children.setStyle('bottom', -40);
		});
		
		if($defined($('top-realisations'))) {
			this.showWork = $('show-work');
		}
		
		$$('.ajax-show-work').addEvent('click', function() {

			var tb = this;
			var myFx2 = new Fx.Tween($('categories'), {
				duration: 200,
				onComplete: function() {
					mthis.updateNextPrevious();	
				}
			});

			var myFx = new Fx.Tween($('categories'), {
				duration: 200,
				onComplete: function() {

					$$('.category').setStyle('display', 'none');
					mthis.showWork.removeClass('category-hide');
					
					var myHTMLRequest = new Request.HTML({
						onSuccess:function() {
							myFx2.start('opacity', 1);
						},
						
						update: mthis.showWork
					}).get('/ajax/'+tb.getProperty('rel'));
					
					

	
				}
				});
				
				//Transitions the background color of the Element from black to red:
				myFx.start('opacity', '0');


			return false;
		});
    },
    
    slideshowToolbarPause: function() {
    	this.slideshowToolbarStandby = true;
    	this.toolbarTimer = this.slideshowToolbarUnpause.delay(10000, this);
    },
    
    slideshowToolbarUnpause:function() {
    	this.slideshowToolbarStandby = false;
    },
    
    
    toolbarEventWork: function(tb) {
    	var mthis = this;
    	$$('#toolbar-realisations a.toolbar').removeClass('selected');

		tb.addClass('selected');
		var scrollToEl = tb.getProperty('href');
		scrollToEl = scrollToEl.substr(1);
		
	
		var myFx2 = new Fx.Tween($('categories'), {
			duration:200,
			onComplete: function() {
				mthis.updateNextPrevious();
			}
		});
		
		var myFx = new Fx.Tween($('categories'), {
			duration: 200,
			onComplete: function() {
				if($defined(mthis.showWork)) {
					mthis.showWork.setProperty('html', '');
				}
				
				$$('.category').setStyle('display', 'none');
				
				var selectedCategory = $(tb.getProperty('rel'));
					/* reinit scroll */				
					var myFx = new Fx.Scroll($('work-wrapper')).set(0, 0);
				
				selectedCategory.setStyle('display', 'block');
				myFx2.start('opacity', 1);
			}
			});
		//Transitions the background color of the Element from black to red:
		myFx.start('opacity', '0');
		
		return false;
    },
    
    toolbarEvent: function(tb) {
		$$('#toolbar-home a').removeClass('selected');
		tb.addClass('selected');
		var scrollToEl = tb.getProperty('href');
		scrollToEl = scrollToEl.substr(1);
		
		
		var myFx = new Fx.Scroll('work-wrapper').toElement(scrollToEl);
		return false;    	
    },
    
    updateNextPrevious: function () {
		if($defined($('work-wrapper')) && $defined($('next')) && $defined($('previous'))) {
			var currentScroll = $('work-wrapper').getScroll().y;
			var totalHeight = $('work-wrapper').getScrollSize().y;
			var maskSize = $('work-wrapper').getSize().y;
			
			if((currentScroll+maskSize) == totalHeight) {
				$('next').setOpacity(0.5);
			} else {
				$('next').setOpacity(1);
			}
			
			if((currentScroll) == 0) {
				$('previous').setOpacity(0.5);
			} else {
				$('previous').setOpacity(1);
			}
		}
    },
    
    
    
    slideshowToolbar: function() {
    	
    	if(this.slideshowToolbarStandby == false) {
			var tbs = $$('#toolbar-home a');
			var totalTb = tbs.length;
			var currentTb = 1;
			var currentFound = false;
			
			$each(tbs, function (tblink, key) {
				if(tblink.hasClass('selected')) {
					currentFound = true;
				}
				
				if(!currentFound) {
					currentTb++;
				}
			});
		
			var nextTb = currentTb + 1;

			if(nextTb >= totalTb) {
				nextTb = 1;
			}
			
			nextTb = nextTb - 1;
			
			nextTbObj = tbs[nextTb];

			this.toolbarEvent(nextTbObj);
			
    	}

	}

});







window.addEvent('domready', function() {	
	new zolaks();
});