

// This lets Rails know that any ajax request should be handled by format.js not .html (Railscast 136)
jQuery.ajaxSetup({
	'beforeSend': function(xhr) { xhr.setRequestHeader('Accept', 'text/javascript')}
});


// Easy helper function to submit any form as AJAX.
// The action must return Javascript, which is then executed.
// No worky for multipart forms :(
jQuery.fn.submitWithAjax = function() {
	this.submit(function() {
		$.post(this.action, $(this).serialize(), null, "script");
		return false;
	})
	return this;
};





function switchToPanel(panelSetName, panelName)
{
	// Turn all buttons off
	$("button[name|='" + panelSetName +"']").addClass('recessed-off').removeClass('recessed-on');
	
	// Turn on the right button
	$("button[name='" + panelSetName +"-" + panelName + "']").toggleClass('recessed-off recessed-on');
	
	
	// Hide all panels
	$("div[name='" + panelSetName + "'] div[name|='" + panelSetName +"']").css({'display':'none'});
	
	// Show the right panel
	$("div[name='" + panelSetName + "'] div[name='" + panelSetName +"-" + panelName + "']").css({'display':'block'});
}



function switchToTab(tabSetName, tabName, scroll)
{
	// Hide all tabs
	$("div[name='" + tabSetName + "'] div[name|='" + tabSetName +"']").css({'display':'none'});
	
	// Show the right tab
	var tab = $("div[name='" + tabSetName + "'] div[name='" + tabSetName +"-" + tabName + "']");
	if (tab != null) {
		tab.css({'display':'block'});
		
		if (tab.offset() && scroll == true) {
			$('html,body').animate({ scrollTop: tab.offset().top }, { duration: 'slow', easing: 'swing'});
		}
	}
}




function incrementClickCount(entry_id)
{
	$.ajax('/entries/download', {
		data : { 'entry_id' : entry_id },
		async : false
	});
}

