// !Subnav
window.addEvent('domready', function() {
	var mySmoothScroll = new SmoothScroll({links: '.smoothAnchor'});
	
	var subnavs = $$('.subnav');
	subnavs.each(function(subnav, index){
		var link = subnav.getParent();
		if(link){
			subnav.setStyle('display', 'block')
			var subFx = new Fx.Tween(subnav, {duration: 300, property: 'opacity'});
			subFx.set(0);
			link.addEvents({
		    'mouseenter': function(){
		    	this.addClass('hover');
		    	subFx.cancel();
		    	subFx.start(1);
		    },
		    'mouseleave': function(){
		      this.removeClass('hover');
		      subFx.cancel();
		      subFx.start(0);
		    }
			});

		}
		
	});
	
});

// !Composite Banner
window.addEvent('domready', function() {

	var banner = $('compositeBanner');
	if(banner){
		var bannerContents = $('bannerContents');
		var bannerLinks = $$('#bannerLinks li a');
		var bannerimages = new Array();
		var bannercurrentItem = 0;
		var bannercount = 0;
		var bannerheight = 180;
		var bannerspeed = 10000;
		var bannertimer;
		var bannerFx = new Fx.Tween(bannerContents, {duration: 300, property: 'margin-top'});	
		
		bannerLinks.each(function(link, index){
			bannerimages.push(link.get('rel'));
		});
		
		var bannerImages = new Asset.images(bannerimages, {
	    onComplete: function(){
	    	bannerinitialise();
	    }
		});
		
		function bannerinitialise(){
			bannerimages.each(function(img, index){
	    	var slide = new Element('a', {
			    'href': bannerLinks[index].get('href'),
			    'styles': {
			    	'background-image': 'url(' + img + ')'
			    }
				});
				slide.inject(bannerContents);
	    });
	    
	    bannerLinks.each(function(link, index){
				link.addEvent('mouseenter', function(e) {
					selectBanner(link, index);
				});
			});
	    
	    bannertimer = selectBanner.periodical(bannerspeed);
			banner.addEvent('mouseenter', function() {
				$clear(bannertimer);
			});
			
			banner.addEvent('mouseleave', function() {
				bannertimer = selectBanner.periodical(bannerspeed);
			});
	    
		}
		
		function selectBanner(link, index){
			if(bannercurrentItem != null){
				bannerLinks[bannercurrentItem].removeClass('current');
			}
			if(link){
				bannerLinks[index].addClass('current');
				bannerFx.cancel();
				bannerFx.start(-(index * bannerheight));
				bannercurrentItem = index;
				bannercount = index;
			}else{
				bannerLinks[bannercount].addClass('current');
				bannerFx.cancel();
				bannerFx.start(-(bannercount * bannerheight));
				bannercurrentItem = bannercount;
			}
			
			if(bannercount < (bannerLinks.length-1)){
				bannercount++;
			}else{
				bannercount = 0;
			}
		}

		if(!bannercurrentItem){
			selectBanner();
		}
				
	}
});


// !Composite Panel
window.addEvent('domready', function() {

	var panel = $('compositePanel');
	if(panel){
		var panelContents = $('panelContents');
		var panelLinks = $$('#panelLinks li a');
		var images = new Array();
		var currentItem = 0;
		var count = 0;
		var width = 900;
		var speed = 10000;
		var timer;
		var panelFx = new Fx.Tween(panelContents, {duration: 400, property: 'margin-left'});	
		
		panelLinks.each(function(link, index){
			images.push(link.get('rel'));
		});
		
		var myImages = new Asset.images(images, {
	    onComplete: function(){
	    	initialise();
	    }
		});
		
		function initialise(){
			images.each(function(img, index){
	    	var slide = new Element('a', {
			    'href': panelLinks[index].get('href'),
			    'styles': {
			    	'background-image': 'url(' + img + ')'
			    }
				});
				slide.inject(panelContents);
	    });
	    
	    panelLinks.each(function(link, index){
				link.addEvent('mouseenter', function(e) {
					e.stop();
					$clear(timer);
					selectPanel(link, index);
				});
			});
	    
	    timer = selectPanel.periodical(speed);
			panel.addEvent('mouseenter', function() {
				$clear(timer);
			});
			
			panel.addEvent('mouseleave', function() {
				timer = selectPanel.periodical(speed);
			});
	    
		}
		
		function selectPanel(link, index){
			if(currentItem != null){
				panelLinks[currentItem].removeClass('current');
			}
			if(link){
				panelLinks[index].addClass('current');
				panelFx.cancel();
				panelFx.start(-(index * width));
				currentItem = index;
				count = index;
			}else{
				panelLinks[count].addClass('current');
				panelFx.cancel();
				panelFx.start(-(count * width));
				currentItem = count;
			}
			
			if(count < (panelLinks.length-1)){
				count++;
			}else{
				count = 0;
			}
		}
		if(!currentItem){
			var ran_number=0;//Math.floor(Math.random()*(panelLinks.length+1));
			selectPanel(panelLinks[ran_number],ran_number);
		}
				
	}
});
