// Our plugin will be defined within an immediately
// executed method.
(function($)
{
	// Default to the current location.
	var strLocation = window.location.href;
	var strHash = window.location.hash;
	var strPrevLocation = "";
	var strPrevHash = "";

	// This is how often we will be checkint for
	// changes on the location.
	var intIntervalTime = 100;

	// This method removes the pound from the hash.
	var fnCleanHash = function(strHash)
	{
		return (strHash.substring(1, strHash.length));
	}

	// This will be the method that we use to check
	// changes in the window location.
	var fnCheckLocation = function()
	{
		// Check to see if the location has changed.
		if (strLocation != window.location.href)
		{

			// Store the new and previous locations.
			strPrevLocation = strLocation;
			strPrevHash = strHash;
			strLocation = window.location.href;
			strHash = window.location.hash;

			// The location has changed. Trigger a
			// change event on the location object,
			// passing in the current and previous
			// location values.
			$(window.location).trigger("change",
			{
				currentHref : strLocation,
				currentHash : fnCleanHash(strHash),
				previousHref : strPrevLocation,
				previousHash : fnCleanHash(strPrevHash)
			});

		}
	}

	// Set an interval to check the location changes.
	setInterval(fnCheckLocation, intIntervalTime);
})(jQuery);

