/* jQuery Content Panel Switcher JS */
var currentPanelContent = $('#default-content').html();
var panelTransitionFadingIn = false;
var panelTransitionFadingOut = false;
var panelTransitionSpeed = 200;

var jcps = {};
jcps.fader = function(speed, target, panel) {
	jcps.show(target, panel);
    if (panel == null) {panel = ''};
	
	$('.switcher' + panel).mouseenter(function() {		
		var _contentId = '#' + $(this).attr('id') + '-content';
		currentPanelContent = $(_contentId).html();
		HandlePanelFade(target);		
	
	});
		
	$('.switcher' + panel).mouseleave(function() {
		var _contentId = '#default-content';
		currentPanelContent = $(_contentId).html();
		HandlePanelFade(target);
	});
};

function HandlePanelFade(target) {
	if (panelTransitionSpeed == 0) {
		$(target).html(currentPanelContent);
	}
	else {	
		// if the panel is fading out, new content will already be displayed once it has finished
		if(panelTransitionFadingOut) return;
		
		if(panelTransitionFadingIn) {
			// update the panel content immediately so that by the time it fades up, the content is correct
			$(target).html(currentPanelContent);
			return;			
		}
		
		panelTransitionFadingOut = true;
		$(target).fadeOut(panelTransitionSpeed, function(){
			panelTransitionFadingOut = false;
			panelTransitionFadingIn = true;
			$(this).html(currentPanelContent).fadeIn(panelTransitionSpeed, function() {
				panelTransitionFadingIn = false;
			});
		});		
	}
}


jcps.show = function (target, panel) {
$('.show').each(function() {
	if (panel == null) {
		$(target).append($(this).html() + '<br/>');
	}
	else {
		var trimPanel = panel.replace('.', '');
		if ($(this).hasClass(trimPanel) == true){$(target).append($(this).html() + '<br/>');}
	}
});
}
