var accordion = {
	containerSelector : 'ul.accordion',
	interactiveContainerClass : 'interactive',
	activeCardClass : 'active',
	cardWidth : 0,
	labelWidth : 0,
	activeCard : false,
	init : function() {
		accordion.calculateWidths();
		accordion.initContainer();
		accordion.initLabels();
	},
	calculateWidths : function() {
		var numberOfLabels = jQuery(accordion.containerSelector + ' li').size() - 1;
		accordion.labelWidth = jQuery(accordion.containerSelector + ' li[class!=' + accordion.activeCardClass + ']').width();
		accordion.cardWidth = jQuery(accordion.containerSelector).width() - numberOfLabels * accordion.labelWidth;
	},
	initContainer : function() {
		jQuery(accordion.containerSelector).addClass(accordion.interactiveContainerClass);
	},
	initLabels : function() {
		accordion.activeCard = jQuery(accordion.containerSelector + ' li.' + accordion.activeCardClass);
		jQuery(accordion.containerSelector + ' li h2').bind(
			'mouseover click',
			function() {
				var currentCard = jQuery(this).closest('li');
				if (currentCard.hasClass(accordion.activeCardClass)) {
					return false;
				}
				var currentImage = currentCard.find('img');
				var currentImageWidth = currentImage.width();
				var currentMoreLink = currentCard.find('a.more');
				accordion.activeCard.css('width', accordion.labelWidth + 'px').removeClass(accordion.activeCardClass);
				currentMoreLink.css('display', 'none');
				currentImage.css('left', '-' + currentImageWidth + 'px');
				currentCard.css('width', accordion.cardWidth + 'px').addClass(accordion.activeCardClass);
				currentImage.animate(
					{ left : '0' },
					'fast',
					function() { currentMoreLink.fadeIn().css('display', '') }
				);
				accordion.activeCard = currentCard;
				return false;
			}
		);
		jQuery(accordion.containerSelector + ' li img').bind(
			'click',
			function() {
				var linkObject = jQuery(this).siblings('a.more');
				var link = linkObject.attr('href');
				if (link == null) return false;
				var target = linkObject.attr('target');
				if (target == '_blank') {
					window.open(link, '_blank');
				} else {
					window.location.href = link;
				}
				return false;
			}
		);
	}
}
jQuery(window).load(function() {
	accordion.init();
});
