// ---------------------------------------------------------------------------------------------------------------
// (c) ANBe Designs 2003 (MACB)
// anbedesigns@hotmail.com
// ---------------------------------------------------------------------------------------------------------------

function LeftSub(aString, Count)
{
	return aString.substr(0, aString.length - Count);
}

// ---------------------------------------------------------------------------------------------------------------

function RightSub(aString, Count)
{
	return aString.substr(Count, aString.length - Count);
}

// ---------------------------------------------------------------------------------------------------------------

function TrimChar(Ascii)
{
	switch(Ascii)
	{
		case 9: case 10: case 13: case 32: return true; break;
		default: return false;
	}
}

// ---------------------------------------------------------------------------------------------------------------

function Trim(Str)
{
	var CharCode;
	var Result = "";
	for (var i = 0; i < Str.length; i++)
	{
		CharCode = Str.charCodeAt(i);
		if (!TrimChar(CharCode))
			Result += String.fromCharCode(CharCode);
	}
	return Result;
}

// ---------------------------------------------------------------------------------------------------------------

function FormatStr(Str, Keys, Values)
{
	for (var i = 0; i < Keys.length; i++)
		Str = Str.replace(Keys[i], Values[i]);
	return Str;
}

// ---------------------------------------------------------------------------------------------------------------

function ReplaceGlobal(Str, Search, ReplaceWith)
{
	var re = new RegExp(Search, "gim");
	var Result = Str.replace(re, ReplaceWith);
	re = null;
	return Result;
}

// ---------------------------------------------------------------------------------------------------------------

function FormatStrEx(Str, Keys, Values)
{
	var Result = Str;
	for (var i = 0; i < Keys.length; i++)
	{
		Result = ReplaceGlobal(Result, "¿" + Keys[i] + "\\?", Values[i]);
	}
	return Result;
}

// ---------------------------------------------------------------------------------------------------------------

function Left(Str, Len)
{
	return Str.substr(0, Len); 
}

// ---------------------------------------------------------------------------------------------------------------

function Right(Str, Len)
{
	return Str.substr(Str.length - Len, Str.length); 
}

// ---------------------------------------------------------------------------------------------------------------

function StrEllipsisLen(Str, Length, Mode)
{
	if (Mode)
	{
		var n = Length >> 1;
		return Str.length > Length ? Left(Str, n) + "..." + Right(Str, n) : Str;
	}
	else
		return Str.length > Length ?  Left(Str, Length) + "..." : Str;
}

// ---------------------------------------------------------------------------------------------------------------

function StrIncludeAnyChar(Str, Chars)
{
	var i;
	var n = Chars.length;
	var Result = false;
	for (i = 0; i < n; i++)
	{
		if (Str.indexOf(Chars.charAt(i)) > -1)
		{
			Result = true;
			break;
		}
	}
	return Result;
}

// ---------------------------------------------------------------------------------------------------------------

function RepeatString(Str, n)
{
	var i;
	var Result = "";
	
	for (i = 0; i < n; i++)
		Result += Str;
		
	return Result;
}

// ---------------------------------------------------------------------------------------------------------------

function PadLeft(Str, Char, Length)
{
	return Str.length >= Length ? Str : RepeatString(Char, Length - Str.length) + Str;
}

// ---------------------------------------------------------------------------------------------------------------
