var StoneSelector = function() {
	var me = this;

	me.alphaLayer = $($('.stoneSelectorAlpha')); 
	me.totalImages = 0;

	$('.stoneSelectorLink').each(function() {
		var thisLink = $(this);
		var count = parseInt(thisLink.attr('count'));

		if(count > me.totalImages) {
			me.totalImages = count;
		}
		$(this).bind('click', {count: count, ss: me}, me.open);
	});
	
	$('.stoneSelectorWindow .close').each(function() {
		var count = $(this).closest('.stoneSelectorWindow').attr('id').replace(/\w+_/, '');
		$(this).bind('click', {count: count, ss: me}, me.close);
	});
	
	$('.stoneSelectorWindow .next').each(function() {
		var count = $(this).closest('.stoneSelectorWindow').attr('id').replace(/\w+_/, '');
		$(this).bind('click', {count: count, ss: me}, me.next);	
	});
	
	$('.stoneSelectorWindow .previous').each(function() {
		var count = $(this).closest('.stoneSelectorWindow').attr('id').replace(/\w+_/, '');
		$(this).bind('click', {count: count, ss: me}, me.previous);
	});
	
	$(window).resize(function() {
		me.resizeAlpha();
	});
	
	me.resizeAlpha();
}
StoneSelector.prototype = {
	open: function(event) {
		event.preventDefault();
		var ss = event.data['ss'];
		var count = parseInt(event.data['count']);

		var thisWindow = $($('.stoneSelectorWindow').get(count -1));

		ss.alphaLayer.show();
		ss.center(thisWindow);
		thisWindow.show();
	},

	close: function(event) {
		event.preventDefault();
		var ss = event.data['ss'];
		var count = parseInt(event.data['count']);
		
		var thisWindow = $($('.stoneSelectorWindow').get(count -1));
		
		ss.alphaLayer.hide();
		thisWindow.hide();
	},
	
	next: function(event) {
		event.preventDefault();
		var ss = event.data['ss'];
		var count = parseInt(event.data['count']);
		
		if(count < ss.totalImages) {
			var thisWindow = $('#ssw_' + (count));
			var nextWindow = $('#ssw_' + (count +1));
			ss.center(nextWindow);
			nextWindow.show();
			thisWindow.hide();
		}
	},
	
	previous: function(event) {
		event.preventDefault();
		var ss = event.data['ss'];
		var count = parseInt(event.data['count']);

		if(count > 1) {
			var thisWindow = $('#ssw_' + (count));
			var previousWindow = $('#ssw_' + (count -1));
			ss.center(previousWindow);
			previousWindow.show();
			thisWindow.hide();
		}
	},
	
	resizeAlpha: function() {
		var me = this;
		this.alphaLayer.css('height', $(window).height() + 'px');
		this.alphaLayer.css('width', $(window).width() + 'px');
		
		$('.stoneSelectorWindow').each(function() {
			me.center($(this));
		});
	},
	
	center: function(element) {
		var offset = ($(window).width() - element.outerWidth()) / 2;
		var scrollPosition = ($(window).scrollTop() + 10); 

		element.css('left', offset + 'px');
		element.css('top', scrollPosition + 'px');
	}
}

$(document).ready(function() {
	new StoneSelector();
});
