var JA_Collapse_Mod = new Class({

	initialize: function(myElements) {
		options = Object.extend({			
			transition: Fx.Transitions.quadOut
		}, {});
			
		//var exModules = Cookie.get('ja-collex');
		if(!exModules) exModules = [];
		
		myElements.each(function(el){
			el = this.getDeepestDiv(el);
			var title = $E('H3', el);
			if (!title) return;
			el._id = title.innerHTML.trim().replace (' ', '_');

			if (exModules.contains(el._id)) {
				return;
			}

			title.remove();
			el.innerHTML = '<div class="jamod-content">' + el.innerHTML + '</div>';
			title.inject(el, 'top');
			el.titleEl = title;
			el.titleEl.setStyle('cursor', 'pointer');

			el.elmain = $E('.jamod-content',el);

			el.status = Cookie.get(el._id);
			el.openH = el.elmain.getStyle('height').toInt();
			el.elmain.setStyle ('overflow','hidden');

			if(el.status == 'hide') {
				el.titleEl.className='hide';
				//el.elmain.setStyle('height', 0);
			} else {
				el.titleEl.className='show';
				el.status = 'show';
			}
			
			el.titleEl.addEvent('click', function(e){
				e = new Event(e).stop();
				el.toggle();
			});	
			
			el.toggle = function(){
				if (el.status=='hide') el.show();
				else el.hide();
			}	
			
			el.show = function() {
				el.titleEl.className='show';
				var ch = el.elmain.getCoordinates().height;
				new Fx.Style(el.elmain,'height',{onComplete:el.toggleStatus}).start(ch,el.openH);
			}	
			el.hide = function() {
				el.titleEl.className='hide';
				var ch = el.elmain.getCoordinates().height;
				new Fx.Style(el.elmain,'height',{onComplete:el.toggleStatus}).start(ch,0);				
			}
			el.toggleStatus = function () {
				el.status=(el.titleEl.className=='show')?'show':'hide';
				if (el.status == 'show')
				{
					el.elmain.setStyle ('height', 'auto');
					el.openH = el.elmain.getCoordinates().height;
				}
				Cookie.set(el._id,el.status,{duration:365});
			}				
			
			if(el.status=='hide') el.hide();

		}, this);
	},

	getDeepestDiv: function (div) {
		while (div.getChildren().length && (div.getChildren()[0].tagName == 'DIV'))
		{
			div = div.getChildren()[0];
		}
		return div;
	}
});

window.addEvent ('load', function(e){
	var jamod = new JA_Collapse_Mod ($ES('.module', $('ja-sidecol')));
});

