var BANNER = {
	image: null,
	container: null,
	sources: [],
	index: 0,
	fx: null,
	delay: 6, //seconds
	duration: 1, //seconds
	initialize: function (image, banners) {
		BANNER.image = image;
		BANNER.sources = banners;
		BANNER.image.setStyle('margin', '0pt');
		BANNER.container = image.getParent();		
		BANNER.fx = new Fx.Elements(BANNER.image, {
			duration: BANNER.duration * 1000
		});
		
		BANNER.preload();
	},
	preload: function () {
		new Asset.images(BANNER.sources, {
			onComplete: function () {
				BANNER.next();
			}
		});
	},
	next: function () {
		
		BANNER.index = (BANNER.index + 1) % BANNER.sources.length;
		BANNER.container.setStyle('background-image', 'url(' + BANNER.sources[BANNER.index] + ')');
		
		BANNER.fx.start({'0': {'opacity': 0}}).chain(function () {
			BANNER.image.setProperty('src', BANNER.sources[BANNER.index]);
			BANNER.fx.set({'0': {'opacity': 0.9999}});
			setTimeout('BANNER.next()', BANNER.delay * 1000);
		});
	}
};
var PAGES = {
	currentPage: '',
	currentBanner: 1,
	timeout: '',
	modifyContentLinks: function () {
		$$('#content a').each(
			function (a) {
				var href = a.getProperty('href');
				if (href.indexOf('?page=') >= 0) {
					a.addEvent('click', function (e) {
						new Event(e).stop();
						
						PAGES.displayPage(href.split('?page=')[1]);

					});
				}
			}
		);
	},
	scrollToTop: function () {
	
		var scroll = new Fx.Scroll(window, {
			wait: false,
			duration: 500,
			offset: {'x': 0, 'y': 0},
			transition: Fx.Transitions.Quad.easeInOut
		});

		scroll.toElement(window);
	},
	preloadBanners: function () {
		new Asset.images([
				'images/banner_1.jpg',
				'images/banner_2.jpg',
				'images/banner_3.jpg',
				'images/banner_4.jpg',
				'images/banner_5.jpg'
			],
			{
				onComplete: function () {
					PAGES.nextBanner();
				}
			}
		);
	},
	nextBanner: function () {
		PAGES.currentBanner = (PAGES.currentBanner % 5) + 1;
		
		$('bannerimage').setOpacity(0);
		$('bannerimage').setProperty('src', 'images/banner_' + PAGES.currentBanner + '.jpg');
		
		
		bannerFX = new Fx.Elements($('bannerimage'), {duration: 1000});
		bannerFX.start({'0': {'opacity': 0.9999}}).chain(
			function () {
				$('banner').setStyle('background-image', 'url(' + $('bannerimage').getProperty('src') + ')');

				PAGES.timeout = setTimeout('PAGES.nextBanner()', 11000);
			}
		);
	},
	displayPage: function(page) {
		//console.log("Page: ", page);
		if (page == PAGES.currentPage) { return; }
		
		var url = 'page.php?page=' + page;
		var contentBox = $('content');
		var temp = new Element('div', {});
		
		var fxOptions = {wait: false, duration: 250, transition: Fx.Transitions.sineOut};

		// FADE OUT THE MENU AND BOXES IF NECESSARY
		if (PAGES.currentPage == 'whoweare') {
			new Fx.Elements($('sidebar'), fxOptions).start({'0': {'opacity': 0}});
			$$('a.box').each( function (box) { new Fx.Elements(box, fxOptions).start({'0': {'opacity': 0}}); } );
		}
		
		PAGES.scrollToTop();
		
		new Fx.Elements($('content'), fxOptions).start({'0': {'opacity': 0.2}}).chain(
			function () {
				new Request.HTML({
					url: url,
					update: temp,
					onComplete: function () {
						
						new Fx.Elements($('content'), fxOptions).start({'0': {'opacity': 0}}).chain(
							function () {
								// SIZE UP THE NEWS BAR
								var sidebarHeight = (page == 'whoweare') ? '44em' : '0px';
								var sidebarPadding = (page == 'whoweare') ? '100px' : '1px';
								$('sidebar').setStyles({'height': sidebarHeight, 'padding-top': sidebarPadding});
								
								// SIZE UP THE LINK BOXES
								var boxHeight = (page == 'whoweare') ? '70px' : '0px';
								var boxPadding = (page == 'whoweare') ? '50px 15px 107px 15px' : '0px';
								$$('a.box').each( function (box) { box.setStyles({'height': boxHeight, 'padding': boxPadding}); } );
								
								// REMOVE THE CONTENT PARAGRAPHS
								$('content').empty();
								contentBox.adopt(temp.getChildren());
		//						
		//						// SET THE CONTENT WIDTH
		//						//var contentWidth = (page == 'whoweare') ? '520px' : '800px';
		//						//$('content').setStyle('width', contentWidth);
		//						
								var leftSpace = (page == 'whoweare') ? 250 : 0;
								contentBox.setStyle('margin-left', leftSpace);
								$('menu').setStyle('padding-left', leftSpace);
								
								PAGES.modifyContentLinks();
								
								// SHOW THE NEWS AND BOXES IF NECESSARY
								if (page == 'whoweare') {
									new Fx.Elements($('sidebar'), fxOptions).start({'0': {'opacity': 0.9999}});
									$$('a.box').each( function (box) { new Fx.Elements(box, fxOptions).start({'0': {'opacity': 0.9999}}); } );
								}
								new Fx.Elements($('content'), fxOptions).start({'0': {'opacity': 0.9999}});
							}
						);
					}
				}).get();
			}
		);
		PAGES.currentPage = page;
	},
	initializeLinks: function () {
		$$('#menu li', '.box').each(
			function (item) {
				item.addEvent('click', function (e) {
					var item_id = item.getProperty('id');
					if (item_id != 'stafflogin') {
						new Event(e).stop();
						PAGES.displayPage(item_id);
					}
				});
			}
		);

		$$('area')[0].addEvent('click', function (e) {
			new Event(e).stop();
			
			PAGES.displayPage('privacy');
		});
			
		$$('#sidebar a').each(
			function (item) {
				if (item.getProperty('src') == '/?page=news') {
					item.addEvent('click', function (e) {
						new Event(e).stop();
						
						PAGES.displayPage('news');
					});
				}
			}
		);
	},
	initializePages: function () {
		var url = window.location.href;
		var page = 'whoweare';
		
		if (url.indexOf('?page=') >= 0) {
			page = url.split('?page=')[1];
		}
		
		PAGES.currentPage = page;
		PAGES.displayPage(page);
	},
	preloadTitles: function () {
		var images = [];
		$$('#menu li').each(
			function (item) {
				images.include('images/title_' + item.getProperty('title').replace(' ', '').toLowerCase() + '.gif');
			}
		);
		new Asset.images(images, {});
	}
};

window.addEvent('domready', function () {
	PAGES.preloadTitles();
	PAGES.initializePages();
	PAGES.initializeLinks();
});
window.addEvent('load', function () {
	BANNER.initialize($('banner'), ['images/banner_1.jpg','images/banner_2.jpg','images/banner_3.jpg','images/banner_4.jpg','images/banner_5.jpg']);
});

