
// show an error
function showError(sError)
{
	document.getElementById("message").className     = "feedback error";
	document.getElementById("message").style.display = "block";
	document.getElementById("error").innerHTML = sError;
}

// show a message
function showMessage(sMessage)
{
	document.getElementById("message").className     	= "feedback info";
	document.getElementById("message").style.display 	= "block";
	document.getElementById("message").innerHTML 		= sMessage;
}

// Synopsis: [object] = parseURL( string URL );
function parseURL( sURL )
{
	/^((\w+):\/{2,3})?((\w+\.)?\w+\.\w+)(:(\d+))?(\/[^\?#]*)?(\?[^#]+)?(#.+)?/.exec( sURL );
	var nPort     = ( RegExp.$6 || 80 );
	var oReturn   = {
			url:sURL,
			protocol:( RegExp.$2 || "http" ),
			port:nPort,
			hostname:RegExp.$3,
			host:( RegExp.$3 + ( nPort != 80 ? ":" + nPort : "" ) ),
			pathname:RegExp.$7,
			query:RegExp.$8,
			anchor:RegExp.$9
	}
	if ( typeof RegExp.$8 == "string" && RegExp.$8 != "" )
	{
			var aQuery    = RegExp.$8.split( /[?&]/ );
			oReturn.query = {};
			if ( aQuery.length > 0 )
			{
					for ( var i = 0; i < aQuery.length; ++i )
							if ( aQuery[ i ].indexOf( "=" ) >= 0 )
							{
									aQuery[ i ] = aQuery[ i ].split( /=/ );
									oReturn.query[ aQuery[ i ][ 0 ] ] = aQuery[ i ][ 1 ];
							}
			}
	}
	return oReturn;
}

//confirm box
function confirmDirect( sQuestion, sDirect)
{
    if (confirm(sQuestion)) 
		document.location.href=sDirect;
	else 
		return false;
}
