// WBT Manager string manipulation utilities
// Copyright (C) 1998-2002. Integrity eLearning
//	all rights reserved
//
// WBT Manager 1.7
//
// 01-14-2001 ms
//	extracted common functions from individual pages.

//remove leading and trailing blanks
function trim( str )
{
	var s = str.toString();
	
	//remove leading blanks
	while( s.length > 0 && s.substring( 0, 1 ) == " " )
		s = s.substring( 1, s.length );

	//remove trailing blanks	
	while( s.length > 0 && s.substring( s.length-1, s.length ) == " " )
		s = s.substring( 0, s.length-1 );
	
	return( s );
}

//test for embedded blanks
function containsblanks( str )
{
	
	for( i = 0; i < str.length; i++ )
	{
		if( str.charAt(i) == " " )
		{
			return( true );
		}
	}

	return( false );
}

//remove embedded blanks
function removeblanks( str )
{
	var strOut = new String( str );
	var str1, str2, i;
	
	i = strOut.indexOf(" ");
	while( i > -1 )
	{
		str1 = new String( strOut.substring( 0, i ) );
		str2 = new String( strOut.substring( i + 1, strOut.length ) );
		strOut = str1 + str2;
		i = strOut.indexOf(" ");
	}

	return( strOut );
}

//build a user's display name from name components
function formatdisplayname( nFormat, strFirst, strLast, strMiddle, strSuffix, strTitle, strTemplate )
{
    var strReturn = "";
    
    if( nFormat == 1 )
    {
        strReturn = strLast;
        if( strSuffix.length > 0 ) strReturn += " " + strSuffix;
        strReturn += "," + strFirst;
        if( strMiddle.length > 0 )strReturn += " " + strMiddle;
    }
    else if( nFormat == 2 )
    {
        strReturn = strTemplate;
        strReturn = strReturn.replace("%T", strTitle );
        strReturn = strReturn.replace("%F", strFirst );
        strReturn = strReturn.replace("%M", strMiddle );
        strReturn = strReturn.replace("%L", strLast );
        strReturn = strReturn.replace("%S", strSuffix );
        
        //remove any doubled, leading, or trailing spaces
        strReturn = strReturn.replace("  ", " " );
        strReturn = trim(strReturn);
        
    }
    else
    {
        if( strFirst.length > 0 ) strReturn = strFirst + " ";
        if( strMiddle.length > 0 ) strReturn += strMiddle + " ";
        strReturn += strLast;
        if( strSuffix.length > 0 ) strReturn += " " + strSuffix;
    }
    
    return( strReturn );
}

//reformat a date from XML format (yyyy-mm-ddThh:mm:dd) to
// a display format.
function formatdatefromxml( strXMLDate, nFormat )
{
	var s = new String( strXMLDate );
	var year,month,day,hour,min,sec

	year = s.substring( 0, 4 );
	month = s.substring( 5, 7 );
	day = s.substring( 8, 10 );
	hour = s.substring( 11, 13 );
	min = s.substring( 14, 16 );
	sec = s.substring( 17, s.length );

	switch( nFormat )
	{

		case 4: //yyyy/mm/dd
			return( year + "/" + month + "/" + day );
			break;				

		case 3: //yyyy/mm/dd hh:mm:ss.ss
			return( year + "/" + month + "/" + day + " " + hour + ":" + min + ":" + sec );
			break;				

		case 2: //yyyy-mm-dd
			return( year + "-" + month + "-" + day);
			break;
					
		case 1:
		default: //yyyy-mm-dd hh:mm:ss.ss
			return( year + "-" + month + "-" + day + " " + hour + ":" + min + ":" + sec );
			break;				
	}

	return("");	
}

function isvaliddatestring( strDt, nFmt )
{
	//for now, see if Date object can parse the date string
	
	var ndt = Date.parse( strDt );
	
	if( isNaN( ndt ) )
		return( false );
	else
		return( true );
}
