$(function() {

	setTimeout(freshCheck, 5000);
	
	// declare siteurl once, as a global variable
	siteurl = 'http://www.ifesworld.org/48h/';
	
	$("input[name='name']").blur( function() {
		var checkname = $("input[name='name']").val().toLowerCase();		
		var reservedname = checkname.match("daniel bourdann");
		if (reservedname) {
			var password = prompt('Please enter your password:');
			if (password != 'adeleye') {
				$("input[name='name']").focus();
				$("input[name='name']").val('');
				alert('The password you entered was incorrect.');
			}
		}
	});

	$('#messageform').submit( function() {
		// set up the variables and datastring
		var name = $("input[name='name']").val();
		var country = $("input[name='country']").val();
		var message = $("textarea#messagetext").val();
		var dataString = 'name='+name+'&country='+country+'&message='+message;
		// check to see if no blank fields
		if ((name != '')&&(country != '')&&(message != '')) {
			// disable message box and load a message
			$("textarea#messagetext").val('Sending...');
			$("textarea#messagetext").attr("disabled", true);
			$.post(siteurl+'messages/post/', dataString, function() {
				CheckNewMessages();
				$("textarea#messagetext").val('');
				$("textarea#messagetext").attr("disabled", false);
			});
		}
		else { alert('Please complete all fields.'); }
		return false;
	});

	function freshCheck() {
		CheckCurrentRegion();
		CheckNewMessages();
		setTimeout(freshCheck, 5000);
	}

	function CheckNewMessages() {
		// get 'lastupdated' value from hidden field and append it to the ajax url
		var lastupdated = $("input[name='lastupdated']").val();
		// add a random string (timestamp) to the end of the URL to avoid IE caching
		var randstring = getUnixTime();
		var url = siteurl+'messages/update/'+lastupdated+'/'+randstring;
		// perform the ajax request, and updateMessages function
		$.get(url, function(data) {
			updateMessages(data);			
		});
	}

	function updateMessages(msg) {
		// check to see if new messages have been returned
		// this is actually done by testing 'msg' for the presence of a div tag
		if(msg.indexOf('<div') >= 0) {
			$("#messages").prepend(msg);
			$("#newmessages").hide();
			$("#newmessages").fadeIn(1000);
			// update 'lastupdated' with new value
			new_lastupdated = getUnixTime();
			$("input[name='lastupdated']").val(new_lastupdated);
		}
	}
	
	function CheckCurrentRegion() {
		var currentRegion = $("input[name='currentregion']").val();
		// add a random string (timestamp) to the end of the URL to avoid IE caching
		var randstring = getUnixTime();
		var url = siteurl+'pray/checkregion/'+randstring;
		$.get(url, function(data) {
			var newRegion = data;
			if (currentRegion != newRegion) {
				$('.'+currentRegion).removeClass(currentRegion).addClass(newRegion);
				$('.'+currentRegion+'_pale').removeClass(currentRegion+'_pale').addClass(newRegion+'_pale');
				var url = siteurl+'pray/getregioninfo/'+randstring;
				$.get(url, function(data) {
					$('#region_now').html(data);
					$('#region_now').hide();
					$('#region_now').fadeIn(1000);
				});
				$("input[name='currentregion']").val(newRegion);
			}
		});
		
	}
	
	function getUnixTime() {
		// js function to get current UNIX time
		var foo = new Date(); // Generic JS date object
		var unixtime_ms = foo.getTime(); // Returns milliseconds since the epoch
		unixtime = parseInt(unixtime_ms / 1000);
		// fudge the time for testing by X days - 1 day = 86400 seconds
		//unixtime = unixtime+(86400 * 3);
		return unixtime;
	}
	
});