/*---------------------------------------------------------------------------------------
 * Description:
 * This file contains the string code pulled from intranet.
 *
 * Change Log:
 * xxxx/xx/xx xxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 *---------------------------------------------------------------------------------------*/

//ujdaley V1.13 07/23/2002 3:15PM

var reTrimSpaces = /^ +| +$/g;

//ujdaley added 07/23/2002
var reTrimLeadingZeros = /^\s*0+/;

function trimLeadingZeros(s)
{
	return s.replace(reTrimLeadingZeros,"")
}

//padString requires the string() function
function padString(s,intLen,strPad,blnTrailing)
{	
	intLen = parseInt(intLen);
	strPad = strPad.charAt(0);
	blnTrailing = (blnTrailing == null) ? true : blnTrailing;
	if (s.length < intLen) {
		if(blnTrailing)
			return s + string((intLen - s.length),strPad)
		else
			return string((intLen - s.length),strPad) + s
	}
	else {
		return s.substr(0,intLen);
	}
}

function padZeros(s,intLen)
{
	return padString(s,intLen,"0",false);
}


function padSpaces(s,intLen)
{
	return padString(s,intLen," ",true);	
}

// This function accepts three variables (string,char,char). It searches the string, replacing the first character
// with the second character.
//ujdaley - added escape backslash for special characters
function inspectReplace(s,s1,s2,blnGlobal,blnIgnoreCase)
{
	blnGlobal = (blnGlobal == null) ? true : blnGlobal;
	blnIgnoreCase = (blnIgnoreCase == null) ? false : blnIgnoreCase;
	var strGlobalFlag = (blnGlobal) ? "g" : "";
	var strIgnoreCaseFlag = (blnIgnoreCase) ? "i" : "";
	var strSpecialCharacters = "$|()^?*+.[]\\/{}"
	for(var i=0;i<s1.length;i++)
	{
		if( strSpecialCharacters.indexOf(s1.charAt(i)) != -1)
		{
			s1 = s1.substring(0,i) + "\\" + s1.substr(i)
			i++ //we just added a char to the string, so bump up one for next charAt(i)
		}
	}
	var reX = new RegExp(s1,strGlobalFlag + strIgnoreCaseFlag)
	return s.replace(reX,s2)
}

function makeString(s,intLen)
{
	var i = s.length
	if(i<intLen)
	{
		var arrSpaces = new Array(intLen-i)
		for(var j=0;j<arrSpaces.length;j++)
			arrSpaces[j] = " "
		return s + arrSpaces.join("")
	}
	else
	{
		return s.substr(0,intLen)
	}
}

function makeNumString(s,intLen)
{
	if(typeof(s) == "number")
		s = s.toString()
	var i = s.length
	if(i<intLen)
	{
		var arrZeros = new Array(intLen-i)
		for(var j=0;j<arrZeros.length;j++)
			arrZeros[j] = "0"
		return arrZeros.join("") + s
	}
	else
	{
		return s.substr(0,intLen)
	}
}

function UCase(Str)
{
	return (Str.toUpperCase())
}


function LCase(Str)
{
   return (Str.toLowerCase())
}

//Remove leading and trailing blanks from a string
function Trim(Str)
{
	return Str.replace(reTrimSpaces,"");
}

//Return the length of a string
function Len(Str)
{  
	return Str.toString().length;  
}

//Returns a specified number of characters from the left side of a string
function Left(Str, n)
{
	Str = Str.toString();
	if (n <= 0)    
    	return "";
    else if (n > Str.length)  
    	return Str;              
    else 
    	return Str.substring(0,n);
}

//Returns a specified number of characters from the right side of a string
function Right(Str, n)
{
	Str = Str.toString();
	if (n <= 0)     
		return "";
    else if (n > Str.length)   
    	return Str;               
    else 
    { 
    	var iLen = Str.length;
        return Str.substring(iLen, iLen - n);
    }
}

function string(number,character) {
	//array handling faster than string concatenation
	var a = new Array(number);
	for(var i=0;i<a.length;i++) {
		a[i] = character;
	}
	return a.join("");
}

//Returns a specified number of characters from a string
function Mid(Str, start, len)
{
	Str = Str.toString();
	if (start < 0 || len < 0) 
		return "";

    var iEnd, iLen = Str.length;
    if (start + len > iLen)
    	iEnd = iLen;
    else
        iEnd = start + len;

    return Str.substring(start,iEnd);
}