(function($) {
	$.fn.alternateDisplay = function() {

		// Setup initial variables
		var clicked = "";
		var currentItem = "";
		var previousItem = "";

		// Setup Off State on Page Load
		function setToOff() {
			$('.listWrapper').addClass('bgOff').end();
			$('.listContent').addClass(' borderOff bgOff').end();
			$('.listTitle').addClass('off').end();
			$('.listDescription').css('display','none');
			$('.listDescription p').css('opacity','0');
		}

		// Initiate Off States
		setToOff();
		
		// Wrap h4 in anchor tag
		$('.listItem h4').wrapInner('<a href="#"></a>');

		// Give unique id to each item (listItem_#)
		$(this).each(function (itemCount) {
			$(this).attr('id','Item_' + itemCount);
		});

		// Create click event
		$(this).click(function(event) {
			// Initiate animateDisplay on Clicked Item
			animateDisplay(this);
		});

		// FUNCTION: AnimateDisplay
		function animateDisplay(itemClicked) {
			currentItem = '#' + $(itemClicked).attr('id');
			if (clicked != "") {
				previousItem = clicked;
			}

			// Setup vars for Clicked Item
			clicked = '#' + $(itemClicked).attr('id');
			wrapper = clicked + ' .listWrapper';
			listContent = clicked + ' .listContent';
			titleContent = clicked + ' .listTitle';
			descriptionList = clicked + ' .listDescription';
			descriptionContent = clicked + ' .listDescription p';
			// Slide Clicked Item Down
			// -- if it's Description is NOT displayed
			if ($(descriptionList).css('display') != 'block') {
				slideDown();
				// If PreviousItem is Available
				// -- create new variable instances and SlideUp
				if (previousItem != "") {
					wrapper = previousItem + ' .listWrapper';
					listContent = previousItem + ' .listContent';
					titleContent = previousItem + ' .listTitle';
					descriptionList = previousItem + ' .listDescription';
					descriptionContent = previousItem + ' .listDescription p';
					// Slide Previous Item Up
					slideUp();
				}
			// Slide Clicked Item Up
			// -- if it's Description displayed
			} else {
				slideUp();
			}
		}

		// FUNCTION: slideUp
		function slideUp() {
			$(descriptionContent).fadeTo('normal', '0', 
				function() {
					$(descriptionList).slideUp('slow',
						function() {
							$(titleContent).addClass('off');
							$(titleContent).removeClass('on');
							$(listContent).addClass('borderOff bgOff');
							$(wrapper).addClass('bgOff');						
						}
					);
				}
			);
		}

		// FUNCTION: slideDown
		function slideDown() {
			$(wrapper).removeClass('bgOff');
			$(listContent).removeClass('borderOff bgOff');
			$(titleContent).removeClass('off');
			$(titleContent).addClass('on');
			$(descriptionList).slideDown('normal');
			$(descriptionContent).fadeTo('slow', '1',
				function() {
					// IE cleartype resolve
					if (navigator.appName == "Microsoft Internet Explorer") {
						this.style.removeAttribute('filter');	
					}
				}
			);
		}

	};
})(jQuery);