function FLink()
{
	var currentHash	= "";
	
	var validUrl = function(u)
	{
		return (u != null) && (u.length > 0) && (u != '/') && (u != '#');
	};
	
	var getHash = function()
	{
		var e = decodeURI(location.href).split('#');
		return e.length > 1 ? e[1] : "";
	};
	
	this.init = function()
	{
		currentHash = getHash();
	};
	
	this.setHash = function(hash, append)
	{
		if (!validUrl(hash) || hash == currentHash)
			return;
		
		if (append)
			currentHash += hash;
		else
			currentHash = hash;
		
		location.replace('#' + currentHash);
	};
	
	this.getHash = function()
	{
		return currentHash;
	}
};

var flink = new FLink();
flink.init();
