/**
* modified version of collapser.js
* doesn't use display: none inline style.  conflicts with jacarousel.
* jcarousel-collapsed-item class has to be set up in the css
* .jcarousel-collapsed-item {
*	height: 0px;
*	overflow: hidden;
*	visibility: hidden;	
*} 
**/
var CollapserToo = function() {
	
	var CONST_BUTTON_TARGET = ".collapsibletoo > .button";
	var CONST_COLLAPISBLE_DIV_TARGET = ".collapsibletoo > .content";
	
	var CONST_EXPAND_CLASS = "expand";
	var CONST_COLLAPSE_CLASS = "collapse";
	
	function onButtonClick(e) {
		var targetButton = $(e.target);
		var targetDiv = $(e.target).parent().find('> .content');
/*		if (isExpanded(targetDiv)) {
			updateClasses(targetButton, CONST_EXPAND_CLASS, CONST_COLLAPSE_CLASS);
		} else {
			updateClasses(targetButton, CONST_COLLAPSE_CLASS, CONST_EXPAND_CLASS);
		}
		$(targetDiv).slideToggle('fast');
*/		if( $(targetDiv).hasClass('jcarousel-collapsed-item') ){		
			$(targetDiv).removeClass('jcarousel-collapsed-item').animate({
				//height: "300px", "min-height": "300px"
			});
			updateClasses(targetButton, CONST_EXPAND_CLASS, CONST_COLLAPSE_CLASS);
		}else{
			$(targetDiv).animate({
				//height: "10px", "min-height": "10px"
			}).addClass('jcarousel-collapsed-item');
			updateClasses(targetButton, CONST_COLLAPSE_CLASS, CONST_EXPAND_CLASS);
		}	
		return false;
	}
	
	function updateClasses(targetButton, classToRemove, classToAdd) {
		$(targetButton).removeClass(classToRemove).addClass(classToAdd);
	}
	
	function isExpanded(targetDiv) {
		return $(targetDiv).is(":visible");
	}
	
	return {
		//initialiser
		//starts in 'expand' mode
		init : function() {
			
//			$(CONST_COLLAPISBLE_DIV_TARGET).hide();
			$(CONST_COLLAPISBLE_DIV_TARGET).addClass('jcarousel-collapsed-item');
			$(CONST_BUTTON_TARGET).click(onButtonClick);
		},

		show : function(targetString) {
			var targetDiv = $(targetString + "> div");
			var targetButton = $(targetString + " .p");
			if (!isExpanded(targetDiv)) {
				$(targetButton).trigger('click');
			}
		},
		
		overrideText : function(_expandText, _collapseText) {
			expandText = _expandText;
			collapseText = _collapseText;
		}
	}
	
}();
