var FadeTime = 1000;
var State = 0;
var TurnOnTimes = 0;
var Bulbs = 1;
var SwitchesPerBulb = 30000;
var d = new Date();

$(document).ready(function()
{
	TurnOnTimes = Number($("#TurnOnTimes").html());
	$("#TurnOnTimes").html(addCommas(TurnOnTimes));
	if (TurnOnTimes == 1) $("#Time").html("time");
	else $("#Time").html("times");
	Bulbs = Number($(".countBulbs:first").html());
	
	$("#Lightswitch").click(function()
	{	
		if (State)
		{
			$("#Lightswitch").removeClass("On");
			$("#BulbOff").show();
			$("#BulbOn").hide();
			State = 0;
		}
		else
		{
			$("#Lightswitch").addClass("On");			
			$.ajax({
				type: 'POST',
				url: 'LightbulbHandler.php', 
				dataType: 'json',
				success: function(ResponseData)
				{
					NewBulbs = Number(ResponseData.Bulbs);
					
					/* If the bulb count has incremented since the last click, 
					   then this person just burned out the bulb */
					if (NewBulbs > Bulbs)
					{
						console.log(NewBulbs + " > " + Bulbs);
						Bulbs = NewBulbs;
						TurnOnTimes = 0;
						$("#BulbOn").hide();
						$("#BulbOff").hide();
						$("#BulbBurnedOut").show();
						$("#Lightswitch").hide();
						$(".clickHere:first").hide();
						$("#Status").html("You burned out the lightbulb, jerk!");
						$("#Footer").hide();
						$("#ReplaceButton").show();
						$("#TurnOnTimes").html(0);
					}
					else // Just handle a normal click
					{
						Bulbs = NewBulbs;
						TurnOnTimes = Number(ResponseData.TurnOnTimes);
						$("#Status").html("");
						$("#BulbBurnedOut").hide();
						$("#Footer").show();
						$("#ReplaceButton").hide();
						$("#BulbOff").hide();
						$("#BulbOn").show();
					}
					
					$("#TurnOnTimes").html(addCommas(TurnOnTimes));
					
					if (TurnOnTimes == 1) $("#Time").html("time");
					else $("#Time").html("times");
					
					if (ResponseData.Overflow)
					{
						$("#resetStatus").show();
						$("#Lightswitch").hide();
						$(".clickHere:first").hide();
					}
					else
					{
						UpdateStatus();
					}
					$("#WittyQuote").html(ResponseData.Quote);
					State = 1;
				}
			});
			return false;
		}
	});
	
	$("#ReplaceButton").click(function()
	{
		$("#Status").html("");
		$("#BulbBurnedOut").hide();
		$("#BulbOff").show();
		$("#Footer").show();
		$("#ReplaceButton").hide();
		$("#Lightswitch").removeClass("On").show();
	});
});

function UpdateStatus()
{
	if (Bulbs > 1)
	{
		if (TurnOnTimes == 1)
		{
			$("#Counter").html("Total bulbs used: <span class='counterStats'>" + (Bulbs) + "</span> &mdash; Times turned on: <span class='counterStats'>" + addCommas((SwitchesPerBulb * Bulbs) + TurnOnTimes)) + "Time: " + d + "</span>";
		}
		else
		{
			$("#Counter").html("Total bulbs used: <span class='counterStats'>" + (Bulbs) + "</span> &mdash; Times turned on: <span class='counterStats'>" + addCommas((SwitchesPerBulb * Bulbs) + TurnOnTimes)) + "Time: " + d +  "</span>";
		}
	}
	else
	{
		$("#Counter").html("");
	}
}

function empty(Input)
{
	return (typeof(Input) == "undefined" || Input == "");
}

// Handy function from http://www.mredkj.com/javascript/nfbasic.html
function addCommas(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}
