
PhotoGallery = function(currentPageItemCount) {
	this.AUTO_SELECT_INTERVAL = 3000;
	this.MAX_ITEMS = 4;
	
	this.autoSelectTimeoutId = null;
	this.currentItem = null;
	this.currentPageItemCount = currentPageItemCount;

	this.initialize();
}

PhotoGallery.prototype = {
	initialize: function() {
		this.selectItem(1);
		this.setAutoSelectTimeout();
	},
	
	setAutoSelectTimeout: function() {
		this.autoSelectTimeoutId = setTimeout(this.onAutoSelectTimeout.bind(this), this.AUTO_SELECT_INTERVAL);
	},
	
	onAutoSelectTimeout: function() {
		if(this.currentItem > this.currentPageItemCount) {
			this.currentItem = 1;
		} else {
			this.currentItem++;
		}
		
		this.selectItem(this.currentItem);
		this.setAutoSelectTimeout();
	},
	
	manualSelect: function(index) {
		this.stopAutoSelect()
		this.selectItem(index);
	},
	
	stopAutoSelect: function() {
		if(this.autoSelectTimeoutId != null) {
			clearTimeout(this.autoSelectTimeoutId);
			this.autoSelectTimeoutId = null;
		}
	},

	selectItem: function(index) {
		if(index <= this.currentPageItemCount) {
			for(var n = 1; n <= this.currentPageItemCount; n++) {
				var oldContent = $('Badgers_Index_Multimedia_Photo_Gallery_Content_' + n);
				oldContent.className = 'Badgers_Index_Multimedia_Photo_Gallery_Content_Unselected';
			}
			var content = $('Badgers_Index_Multimedia_Photo_Gallery_Content_' + index);
			content.className = '';
			this.currentItem = index;
		}
	},

	setPage: function(id, page) {
		this.stopAutoSelect();
		new Ajax.Updater(
			'Badgers_Index_Multiedia_Photo_Gallery_Container',
			'/freakfest/photo-gallery-page',
			{
				method: 'get',
				asynchronous: true,
				evalScripts: true,
				parameters: 'id=' + id + '&page=' + page
			}
		);
	},

	onShowLightbox: function(link) {
		if(this.autoSelectTimeoutId != null) {
			clearTimeout(this.autoSelectTimeoutId);
			this.autoSelectTimeoutId = null;
		}
	}
};
