/**
 * @author sigr0005
 * @date 07/06/2009
 */

function AHC() {
	
	//////////////////////////////////////////////////////////////////////////////////////////////////
	// Make our intializations:																		//
	//////////////////////////////////////////////////////////////////////////////////////////////////
	var _init			= function() {
		collapsibleList(".-ahc-list-collapsible");
	}
	
	//////////////////////////////////////////////////////////////////////////////////////////////////
	// Private:																						//
	//////////////////////////////////////////////////////////////////////////////////////////////////
	/**
	 * Makes &lt;ul&gt;s into collapsible/expandable lists.
	 * @param {String} jQuery The path to the tag that is to be made into a collapsible list.
	 */
	var collapsibleList	= function(jQuery)
	{
		var l	= $(jQuery);
		var ml	= $(l).find("li:children(ul), li:children(div)");
		$(l).find("li > ul, li > div").addClass("-ahc-list-collapsible-content");	// Label content tags
		l.addClass("-ahc-list-collapsible");										// I probably won't need this.
		ml.addClass("collapsed");
		ml.click(function(event) {
			var t = $(event.target);
			if(!t.parents(".-ahc-list-collapsible-content").length && !t.hasClass(".-ahc-list-collapsible-content"))
				$(event.currentTarget).toggleClass("collapsed");
			
			// For Firefox:
			if(window.getSelection)		window.getSelection().collapseToStart();
		});
	}

	//////////////////////////////////////////////////////////////////////////////////////////////////
	// Make our intializations:																		//
	//////////////////////////////////////////////////////////////////////////////////////////////////
	_init.call(this);
};

//////////////////////////////////////////////////////////////////////////////////////////////////////
// Call out custom AHC object:																		//
//////////////////////////////////////////////////////////////////////////////////////////////////////
$(function() {var ahc = AHC();});
