/**
 * Entries sccordion
 * Version: 29 Jun 2009
 * Depends on jQuery 1.3.2
 */
(function(){
	jQuery.fn.entriesAccordion = function(config){

		// Extends
		config = jQuery.extend({
			selected:   0,
			speed:      "normal",
			childs:     "div.entry",
			hiddens:    "div.detail"
		},config);

		// Property
		var target = this;
		var speed = config.speed;
		var childs = config.childs;
		var hiddens = config.hiddens;
		var selected = config.selected;
		var selected = config.selected;

		var selectedHeadingName = "acdn-heading-selected";
		var selectedHiddenName = "acdn-hidden-selected";
		var closedHeadingName = "acdn-heading-closed";
		var closedHiddenName = "acdn-hidden-closed";

		// Constructor
		var constructor = function(){
			jQuery(childs,target).map(function(i){
				if(i == selected){
					jQuery("h3",this).addClass(selectedHeadingName);
					jQuery(hiddens,this).addClass(selectedHiddenName).css("display","block");
				}else{
					jQuery("h3",this).addClass(closedHeadingName);
					jQuery(hiddens,this).addClass(closedHiddenName).css("display","none");
				}
				jQuery("h3",this).click(function(){ showEvent(i);});
			});
		}
		constructor();

		// Show event
		var showEvent = function(targetNum){
			if(jQuery(hiddens,target).eq(targetNum).css("display") == "none"){

				jQuery("h3",target).eq(selected).removeClass(selectedHeadingName).addClass(closedHeadingName);
				jQuery(hiddens,target).eq(selected).removeClass(selectedHiddenName).addClass(closedHiddenName).slideUp(speed);

				jQuery("h3",target).eq(targetNum).removeClass(closedHeadingName).addClass(selectedHeadingName);
				jQuery(hiddens,target).eq(targetNum).removeClass(closedHiddenName).addClass(selectedHiddenName).slideDown(speed);
			}

			selected = targetNum;
		}
	}
})(jQuery);
