function changeQsVar(values,redirect,anchor)
{
    var url = window.location.href;
    var newUrl = new String();
    
    // remove possible current anchor
	url = url.replace(new RegExp("#.*$"),"");
	
    for(var i=0;i < values.length;i++)
    {
	    var item = values[i].split(";");
	    var varName = item[0];
	    var newValue = item[1];
	    
    	var regexp = new RegExp("[?&]" + varName + "=");
	    if (!regexp.exec(url))
	    {
	    	if (newValue != "-r")
	    	{
		        if (url.indexOf("?") == -1)
		        {
					newUrl = url + "?";
		        }
		        else
		        {
		        	newUrl = url + "&";
		        }
		        newUrl += varName + "=" + newValue;
	    	}		    
	    }
	    else
	    {
	    	if (newValue != "-r") // -r triggers removel of a variable
	    		newUrl = url.replace(new RegExp("([\?&]" + varName + "=)[^&]*([&]?.*$)"),"$1"+newValue+"$2");
	    	else
	    	{
	    		newUrl = url.replace(new RegExp("([\?&]"+varName+"=)[^&]*([&]?)"),"$2");
	    		newUrl = newUrl.replace(new RegExp("(\.php)([^?])"),"$1?"); // correct potential removal of ?
	    	}
	    }
	    url = newUrl;
    }
    
    // add optional new anhcor
    if (anchor != "")
		newUrl += "#"+anchor;

    if (redirect)
    	window.location.href = newUrl;
    else
    	return newUrl;
}

function alertRedirect()
{
	var regexp = new RegExp("[?&]alert=");
	if (regexp.exec(window.location.href))
	{
		var url = window.location.href;
		var text = url.replace(new RegExp("^.*([\?&]alert=)(.*)([&]?).*$"),"$2");	
		alert(text.replace(/%20/g," "));
		changeQsVar(new Array("alert;-r"),true,"");
	}
}
