var ICS = {
	init: function() {
		ICS.fader.init();
		ICS.hover.init();
		ICS.smoothscroll.init();
	},
	
	fader: {
		fader: undefined,
		currentIndex: 0,
		indicator: undefined,
		interval: 5000,
		
		init: function() {
			var container;
			if(container = $('fader')) {
				container.setStyle('height', '238px');
				container.setStyle('width', '702px');
				var fadeItems = container.getElements('div');

				new Element('ul', {
					'id': 'fader-indicator'
				}).inject(container);
				
				var fadeIndicator = $('fader-indicator');
				
				for(var i = 0, j = fadeItems.length; i < j; i++) {
					new Element('li', {
						'class': (i === 0 ? 'active' : ''),
						'events': {
							'click': new Function('ICS.fader.fadeTo(' + i + ', false); return false;')
						}
					}).inject(fadeIndicator);
									
					fadeItems[i].setStyle('position', 'absolute');
					if(i > 0) {
						fadeItems[i].fade('hide');
					}
				}
				
				fadeIndicator.setStyle('width', (fadeItems.length * 9)+'px');
				ICS.fader.fader = ICS.fader.fade.periodical(ICS.fader.interval);
			}
		},
		
		fade: function() {
			var fadeItems = $('fader').getElements('div');
			ICS.fader.fadeTo(ICS.fader.currentIndex + 1 > fadeItems.length - 1 ? 0 : ICS.fader.currentIndex + 1);
		},
		
		fadeTo: function(index, fadeOn) {
			if($('fader')) {
				var fadeItems = $('fader').getElements('div');
				var fadeIndicator = $('fader-indicator');

				fadeItems[ICS.fader.currentIndex].fade('out');
				fadeItems[index].fade('in');
				
				var fadeIndicators = fadeIndicator.getElements('li');
				fadeIndicators[ICS.fader.currentIndex].removeClass('active');
				fadeIndicators[index].addClass('active');

				// Set the current index to the shown index
				ICS.fader.currentIndex = index;
				
				// Note, if no second argument is sent, things keep cycling
				if(fadeOn === false) {
					$clear(ICS.fader.fader);
					//ICS.fader.fader = ICS.fader.fade.periodical(ICS.fader.interval);
				} else if(fadeOn === true) {
					ICS.fader.fader = ICS.fader.fade.periodical(ICS.fader.interval);
				}
			}
		}
	},
	
	hover: {
		init: function() {
			$$('#primarynav > li, #secondary-nav > li').each(function(item, index) {
				item.addEvent('mouseover', function() {
					this.addClass('hover');
				});
				item.addEvent('mouseout', function() {
					this.removeClass('hover');
				});
			});
		}
	},
	
	smoothscroll: {
		init: function() {
			new SmoothScroll({ duration:700 }, window);
		}
	}
};

window.addEvent('domready', ICS.init);
