Ext.onReady(function(){

	COLLAPSED_HEIGHT = 46;
	var naturalHeight = { };

	function initCollapse() {
		Ext.select('.collapsible').each(function() {
			el = Ext.get(this);
			origHeight = el.getHeight();
			el.setHeight('auto');
			naturalHeight[Ext.id(el)] = el.getHeight()
			el.setHeight(origHeight-2);
		});
	}
	
	initCollapse();
	
	function toggleParent(ev, t) {
		ev.preventDefault();
		el = Ext.get(ev.getTarget('.collapsible'));
		el.toggleClass('collapsed');
		
		if (el.hasClass('collapsed')) {
			el.select('.collapse').item(0).dom.innerHTML = '[&nbsp\;show&nbsp\;]';
			el.shift({
				easing: 'easeBoth'
				,height: COLLAPSED_HEIGHT
			});
			el.select('p, .slideshow').setVisibilityMode(Ext.Element.DISPLAY).fadeOut({ duration: .25, easing: 'easeOutStrong' })
		}
		else {
			el.removeClass('collapsedbydefault');
			el.select('.collapse').item(0).dom.innerHTML = '[&nbsp\;hide&nbsp\;]';
			el.shift({
				easing: 'easeOutStrong'
				,height: naturalHeight[el.id] + 14
			});
			el.select('.slideshow, p').fadeIn({ duration: .333, easing: 'easeInStrong' });
		}
	}
	
	Ext.select('.collapse').on('click', toggleParent);
	
	Ext.select('#visitor-type ul')
		.setVisibilityMode(Ext.Element.DISPLAY)
		.hide();

	Ext.select('#visitor-type > li > a').on('click', function(ev,t){
		ev.preventDefault();

		vtype = Ext.get(ev.getTarget('li'))
		
		if (!vtype.hasClass('current')) {
			vtype.radioClass('current');

			Ext.select('#visitor-type ul.open')	
				.slideOut('t', { duration: .15, easing: false })
				.removeClass('open');
			vtype.child('ul')
				.slideIn('t', { duration: .15, easing: false })
				.addClass('open');
		}
		
		else {
			vtype.removeClass('current');
			
			Ext.select('#visitor-type ul.open')
				.slideOut('t', { duration: .15, easing: false })
				.removeClass('open');
		}
	});
	
});

