
var Ticker={
	timer:null,
	current:0,

	init:function() {
		Ticker.start();
		Ticker.showTicker();

		$('ticker').observe('mouseover', function() {
			clearInterval(Ticker.timer);
		});
		$('ticker').observe('mouseout', Ticker.showTicker);

		$$('#ticker a[href=#next]')[0].observe('click', function(e) {
			Event.stop(e);
			Ticker.goNext();
		});

		$$('#ticker a[href=#prev]')[0].observe('click', function(e) {
			Event.stop(e);
			Ticker.goPrev();
		});
	},

	start:function() {
		$$('#ticker span')[0].innerHTML = tickerItems[0];
		$$('#ticker span')[0].hide();
		new Effect.Appear($$('#ticker span')[0]);
	},

	showTicker:function() {
		clearInterval(Ticker.timer);
		Ticker.timer=setInterval(function() {
			Ticker.goNext();
		},6000);
	},

	goNext:function() {
		new Effect.Fade($$('#ticker span')[0], {afterFinish:function() {
			Ticker.current++;
			if(Ticker.current >= tickerItems.length) Ticker.current = 0;

			$$('#ticker span')[0].innerHTML = tickerItems[Ticker.current];
			new Effect.Appear($$('#ticker span')[0]);
		}});
	},

	goPrev:function() {
		new Effect.Fade($$('#ticker span')[0], {afterFinish:function() {
			Ticker.current--;
			if(Ticker.current < 0) Ticker.current = tickerItems.length-1;

			$$('#ticker span')[0].innerHTML = tickerItems[Ticker.current];
			new Effect.Appear($$('#ticker span')[0]);
		}});
	}
}

function ClearSearch() {
	$('q').defaultValue = 'Search';
	$('q').observe('focus', function() {
		if($F('q') == $('q').defaultValue) $('q').value = '';
	});
	$('q').observe('blur', function() {
		if($F('q').blank()) $('q').value = $('q').defaultValue;
	});
}

ImageGallery={
	selectedImage: '',
	totalImages: 0,

	init:function() {
		ImageGallery.preload();
		ImageGallery.attach();
	},

	attach:function() {
		$$('.galleryItem a').each(function(imglink) {
			++ImageGallery.totalImages;
			imglink.observe('click', function(e) {
				Event.stop(e);
				ImageGallery.selectedImage = imglink.id.substring(14);
				ImageGallery.displayImage(imglink);
			}.bindAsEventListener(imglink));
		});
	},

	preload:function() {
		$$('.galleryItem a').each(function(img) {
			var i = new Image();
			i.src=img.href;
		});
	},

	displayImage:function(imgLink) {
		var imgDiv = document.createElement('div');
		imgDiv.id = 'modalLargeImage';
		var largeimg = document.createElement('img');
		largeimg.src = imgLink.href;
		document.body.appendChild(imgDiv);
		imgDiv.appendChild(largeimg);
		var closeModalP = document.createElement('p');
		closeModalP.id = 'modalControls';

		var prev = document.createElement('a');
		prev.href = '#';
		prev.id = 'prevImg';
		prev.appendChild(document.createTextNode('Previous'));
		closeModalP.appendChild(prev);

		var closeModal = document.createElement('a');
		closeModal.id = 'closeModal';
		closeModal.href = "#";
		closeModal.appendChild(document.createTextNode("Close Window"));

		closeModalP.appendChild(closeModal);

		var next = document.createElement('a');
		next.href = '#';
		next.id = 'nextImg';
		next.appendChild(document.createTextNode('Next'));
		closeModalP.appendChild(next);

		imgDiv.appendChild(closeModalP);
		if (parseInt(ImageGallery.selectedImage) == 1) {
			$('prevImg').hide();
		}
		if (parseInt(ImageGallery.selectedImage) == ImageGallery.totalImages) {
			$('nextImg').hide();
		}

		largeimg.width = imgLink.rel.split('x')[0];
		largeimg.height = imgLink.rel.split('x')[1];

		var modal = new Control.Modal($('modalLargeImage'),{
			overlayOpacity: 0.75,
			className: 'modal',
			fade: true,
			afterClose:function() {
				$('modalLargeImage').remove();
			}
		});

		// attach the close function to the <a> click event
		Event.observe('closeModal','click',function(e){
			Event.stop(e);
			modal.close();
		});

		// show the previous image when the 'Next' link is clicked
		Event.observe('prevImg', 'click', function(e){
			Event.stop(e);
			prevImage = parseInt(ImageGallery.selectedImage) - 1;
			//alert('gallery-image-' + nextImage);
			largeimg.src = $('gallery-image-' + prevImage).href;
			largeimg.width = $('gallery-image-' + prevImage).rel.split('x')[0];
			largeimg.height = $('gallery-image-' + prevImage).rel.split('x')[1];
			ImageGallery.selectedImage = prevImage;

			// remove the previous if required
			if (ImageGallery.selectedImage == 1) {
				$('prevImg').hide();
			}
			$('nextImg').show();
			modal.position('center');
		});

		// show the next image when the 'Next' link is clicked
		Event.observe('nextImg', 'click', function(e){
			Event.stop(e);
			nextImage = parseInt(ImageGallery.selectedImage) + 1;
			//alert('gallery-image-' + nextImage);
			largeimg.src = $('gallery-image-' + nextImage).href;
			largeimg.width = $('gallery-image-' + nextImage).rel.split('x')[0];
			largeimg.height = $('gallery-image-' + nextImage).rel.split('x')[1];
			ImageGallery.selectedImage = nextImage;

			// remove the next link if required
			if (ImageGallery.selectedImage == ImageGallery.totalImages) {
				$('nextImg').hide();
			}
			$('prevImg').show();
			modal.position('center');
		});
		modal.open();
	}
}

Event.onDOMReady(function(){
	// need to target webkit browsers as some of the links overflow the wehats on list boundaries
	var ver = navigator.appVersion.toLowerCase();
	if (ver.indexOf('webkit') != -1) {
		//webkit browser
		if ($('events-list')) {
			$$('#events-list p[class="event-link"]').each(function(s){
				s.style.overflow = 'hidden';
				s.style.whiteSpace = 'nowrap';
				s.style.textOverflow = 'ellipses';
			});
		}
	}
});

Event.observe(window, 'load', function() {
	if($('ticker') != null && tickerItems.length > 0) {
		Ticker.init();
	}

	if($('q') != null) ClearSearch();
	if($('gallery-wrapper') != null) ImageGallery.init();

	// open popup links in new window
	$$('a[rel="popup"]').each(function(s){
		Event.observe(s, 'click', function(e){
			Event.stop(e);
			window.open(s.href, "newwin", "top=0,left=0,scrollbars=yes,width=" + screen.availWidth + ",height=" + screen.availHeight);
		});
	});

});
