﻿jQuery(function($) {
	
	// Constants
	
	var cookieName = "nerd_snark_level";
	var snarkLevels = [
		{ className: "snark_low", threshold: 20, description: "Oblivious" },
		{ className: "snark_medlow", threshold: 40, description: "Confrontationally Impaired" },
		{ className: "snark_med", threshold: 60, description: "Pragmatist" },
		{ className: "snark_medhigh", threshold: 80, description: "Cave Man" },
		{ className: "snark_high", threshold: 100, description: "Commando" }
	];
	
	
	// update page classes so I don't have to mark absolutely every level manually
	
	var snarkInSettings = $('#settings').find('.snark_low, .snark_medlow, .snark_med, .snark_medhigh');
	$('.snark_low').not(snarkInSettings).addClass('snark_medlow');
	$('.snark_medlow').not(snarkInSettings).addClass('snark_med');
	$('.snark_med').not(snarkInSettings).addClass('snark_medhigh');
	$('.snark_medhigh').not(snarkInSettings).addClass('snark_high');
	
	
	function getSnarkLevelFromValue(val) {
		val = parseInt(val);
		for(var i=0; i < snarkLevels.length; i++) {
			if (val <= snarkLevels[i].threshold)
				return snarkLevels[i];
		}
		return "";
	};
		
	function snarkChange(e, ui) {
	
		var currentSnark = $('body').attr('class');
		var snark = getSnarkLevelFromValue(ui.value);
		
		if (currentSnark != snark.className) {
		
			$('body').removeClass().addClass(snark.className);
			$.cookie(cookieName, ui.value, {expires: 7});
			
			$.message.show({
				message: snark.description, 
				title: "Snark Level"
			});
		}
		
	};
	
	
	// Snark slider setup
	
	var snark = $('#snark_slider');
	snark.slider({
		slide: snarkChange,
		change: snarkChange
	});
	
	
	// load cookie setting

	var cookieVal = $.cookie(cookieName);
	cookieVal = (cookieVal === null) ? 50 : parseInt(cookieVal);
	snark.slider('value', cookieVal);
	
	
	// init settings dialog
	var settingsDialog = $('#settings_dialog');
	
	$('#settings_dialog').dialog({
		autoOpen: false
	});
	
	// settingsDialog.dialog('open');
	
});
