function ChangeURLtoken(URL, token, value)
{
	token = token + '=';
	var newURL = URL.toString();
	var startTokenIndex = newURL.indexOf(token);
	var endTokenIndex = -1;
	
	if (startTokenIndex == -1)
	{
		startTokenIndex = newURL.indexOf('#', 0);
		if (startTokenIndex == -1)
		{
			newURL = newURL + "&" + token + "" + value
			return(newURL)
		}
	
		newURL = newURL.substring(0,startTokenIndex)
			+ "&" + token + "" + value
			+ newURL.substring(startTokenIndex, newURL.length);
		
		return(newURL)
		
	}
	
	while (newURL.charAt(startTokenIndex-1) != "&" && newURL.charAt(startTokenIndex-1) != "?")
	{
		startTokenIndex = newURL.indexOf(token, startTokenIndex+1);
		if (startTokenIndex == -1)
		{
			newURL = newURL + "&" + token + "" + value;
			return(newURL);
		}
	}
	var offset = 0
	while (newURL.charAt(startTokenIndex-1) == "&") {
		startTokenIndex = startTokenIndex-1;
		offset = offset + 1;
	}

	endTokenIndex = newURL.indexOf("&", startTokenIndex+offset);
	
	if (endTokenIndex == -1)
		endTokenIndex = newURL.indexOf('#', startTokenIndex+offset);

	if (endTokenIndex == -1)
		endTokenIndex = newURL.length;
		
	newURL = newURL.substring(0,startTokenIndex)
			+ "&" + token + "" + value
			+ newURL.substring(endTokenIndex, newURL.length);
			
	return(newURL);
}
