(
		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 );
 


