//================================================================================
//  Client-side access to querystring name=value pairs
//================================================================================
function Querystring(qs) 
{ // optionally pass a querystring to parse
	this.params = new Object()
	this.get=Querystring_get
	
	if (qs == null)
		qs=location.search.substring(1,location.search.length)

	if (qs.length == 0) return

// Turn <plus> back to <space>
// See: http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.4.1
	qs = qs.replace(/\+/g, ' ')
	var args = qs.split('&') // parse out name/value pairs separated via &
	
// split out each name=value pair
	for (var i=0;i<args.length;i++) {
		var value;
		var pair = args[i].split('=')
		var name = unescape(pair[0])

		if (pair.length == 2)
			value = unescape(pair[1])
		else
			value = name
		
		this.params[name] = value
	}
}

function Querystring_get(key, default_) {
	// This silly looking line changes UNDEFINED to NULL
	if (default_ == null) default_ = null;
	
	var value=this.params[key]
	if (value==null) value=default_;
	
	return value
}

//================================================================================
//	Realtime clock
//================================================================================
var clockID = 0;

function updateClock() 
{
	if( clockID )
	{
	  clearTimeout( clockID );
	  clockID  = 0;
	}
	
	var tDate	= new Date();
	var nHour	= right( "0" + tDate.getHours(), 2 );
	var nMinute	= right( "0" + tDate.getMinutes(), 2 );
	var nSecond	= right( "0" + tDate.getSeconds(), 2 );
   
	if( tDate.getHours() > 11 )
	{
		sAMPM	= " PM";
	}
	else
	{
		sAMPM	= " AM";
	}

	oTmp = document.getElementById( "dtTime" )
	oTmp.innerHTML = nHour + ":" + nMinute + ":" + nSecond + sAMPM
	
	clockID = setTimeout( "updateClock()", 1000 );
}

function startClock() 
{
   clockID = setTimeout( "updateClock()", 500 );
}

function killClock() 
{
   if( clockID )
   {
      clearTimeout( clockID );
      clockID = 0;
   }
}


//================================================================================
//	Event management.
//		addEvent( window, 'load', startClock() );
//		addEvent( window, 'unload', killClock() );
//================================================================================
function addEvent( obj, evType, fn )
{ 
	if( obj.addEventListener )
	{ 
		obj.addEventListener( evType, fn, false );
		return true;
	}
	else if( obj.attachEvent )
	{ 
		var r = obj.attachEvent( "on"+evType, fn ); 
		return r; 
	}
	else
	{ 
		return false; 
	} 
}


//================================================================================
//	String functions.
//================================================================================
function len( str )
{
	return String( str ).length; 
}
		
function right( str, n )
{
	if( n <= 0 )
	{
		return "";
	}
	else if( n > String( str ).length )
	{
		return str;
	}
	else
	{
		var iLen = String( str ).length;
		return String( str ).substring( iLen, iLen - n );
	}
}

function left( str, n )
{
	if( n <= 0 )
	{
		return "";
	}
	else if( n > String( str ).length )
	{
		return str;
	}
	else
	{
		return String(str).substring(0,n);
	}
}

function mid( str, start, len )
{
	if( start < 0 || len < 0 )
	{
		return "";
	}

	var iEnd, iLen = String( str ).length;
	
	if( start + len > iLen )
	{
		iEnd = iLen;
	}
	else
	{
		iEnd = start + len;
	}

	return String( str ).substring( start, iEnd );
}

function leftTrim( str )
{
	var whitespace = new String( " \t\n\r" );

	var s = new String( str );

	if( whitespace.indexOf( s.charAt(0) ) != -1 )
	{
		var j=0, i = s.length;

		while( j < i && whitespace.indexOf( s.charAt(j) ) != -1 )
			j++;
	
		s = s.substring( j, i );
	}

	return s;
}

function rightTrim( str )
{
	var whitespace = new String( " \t\n\r" );

	var s = new String( str );

	if( whitespace.indexOf( s.charAt( s.length - 1 ) ) != -1 )
	{
		var i = s.length - 1;

		while( i >= 0 && whitespace.indexOf( s.charAt(i) ) != -1 )
			i--;

		s = s.substring(0, i+1);
	}

	return s;
}

function trim( str )
{
	return rightTrim( leftTrim( str ) );
}


//================================================================================
//	Formatting functions.
//================================================================================
function formatCurrency( num, decimalNum, currencySymbol, bolLeadingZero, bolParens, bolCommas )
{
	var tmpStr = new String( FormatNumber( num, decimalNum, bolLeadingZero, bolParens, bolCommas ) );

	if(tmpStr.indexOf( "(" ) != -1 || tmpStr.indexOf( "-" ) != -1 )
	{
		if( tmpStr.charAt(0) == "(" )
		{
			tmpStr = "(" + currencySymbol + tmpStr.substring( 1, tmpStr.length );
		}
		else if( tmpStr.charAt(0) == "-" )
		{
			tmpStr = "-" + currencySymbol + tmpStr.substring(1,tmpStr.length);
		}
		
		return tmpStr;
	}
	else
	{
		return currencySymbol + tmpStr;
	}
}

//
//	Page Opener.
///
function openPage( pageRef )
{
	if( parent.location.href == self.location.href )
	{
		window.location.href = pageRef;
	}
}



//================================================================================
//	Opening a Pop-up Window.
//================================================================================


    function BringWindow(webpage, widthOf, heightOf) {
		var url=webpage;
        var hWnd=window.open( url,"Member","width=" + widthOf + ",height=" + heightOf +",resizable=yes,scrollbars=yes, top=50,left=50" );
        if( hWnd != null ) {
            if( hWnd.opener == null) {
				hWnd.opener = self; 
                window.name = "window"; 
                hWnd.location.href=url;  
            } 
        }
    }
