(function(){

	var now;
	var then;

	// After the page finishes loading.
	$(document).ready(function(){
		setTime();
	});

	function timeTillNextCraption() {
		now = Date.parse(new Date());
		then = Date.parse(newCraptionTime);
		var diff = then - now;

		// Next day's craption time.
		if(diff <= -1800000) {
			then = 86400000 + then;
			diff = then - now;
		}
		return(diff);
	}

	function setTime() {
		
		var diff = timeTillNextCraption();

		// This is when the button should appear
		if(diff < 0 && diff > -1800000  ) {
			$("#craption_timer").css("display", "none");
			$("#enter_contest_button").css("display", "inline");
		} else {
			$("#enter_contest_button").css("display", "none");
			$("#craption_timer").css("display", "block");
			
			$("#craption_timer").removeClass("ten_minutes");
		}

		var realHours = diff / 3600000;

		if (typeof CraptionTimeWithDays != "undefined" && realHours>=24) {
			var days=Math.floor(realHours/24);
			var hours=realHours-days*24;
		} else {
			var hours = Math.floor(realHours);
		}

		var realMinutes = (diff - Math.floor(realHours) * 3600000) / 60000;
		var minutes = Math.floor(realMinutes);

		var seconds =  Math.floor((diff - ((Math.floor(realHours) * 3600000) + (minutes*60000))) / 1000);
		
		if(diff < 600000) {
			$("#craption_timer").addClass("ten_minutes");
		}

		if(hours < 10) {
			var hours1 = "0";
			var hours2 = hours.toString().charAt(0);
		} else {
			var hours1 = hours.toString().charAt(0);
			var hours2 = hours.toString().charAt(1);
		}
		
		if(minutes < 10) {
			var minutes1 = "0";
			var minutes2 = minutes.toString().charAt(0);
		} else {
			var minutes1 = minutes.toString().charAt(0);
			var minutes2 = minutes.toString().charAt(1);
		}
		
		if(seconds < 10) {
			var second1 = "0";
			var second2 = seconds.toString().charAt(0);
		} else {
			var second1 = seconds.toString().charAt(0);
			var second2 = seconds.toString().charAt(1);
		}

		if (typeof CraptionTimeWithDays != "undefined") {
			if (typeof days != "undefined") {
				if (days<10) {
					var days1="0";
					var days2=days.toString().charAt(0);
				} else {
					var days1=days.toString().charAt(0);
					var days2=days.toString().charAt(1);
				}
			} else {
				var days1="0";
				var days2="0";
			}
			$("#days2").html(days1);
			$("#days3").html(days2);
		}

		$("#hours1").html(hours1);
		$("#hours2").html(hours2);
		
		$("#minutes1").html(minutes1);
		$("#minutes2").html(minutes2);
		
		$("#milliseconds1").html(second1);
		$("#milliseconds2").html(second2);
		
		
		window.setTimeout(function(){
			setTime();
		}, 1000);
	}

})()
