function ltrim(inStr)
{
	var newString = "";

	for (var i=0; i<inStr.length; i++)
	{
		if (inStr.charAt(i) != " ")
			break;
	}

	return inStr.substring(i, inStr.length);
}


function trim(inStr)
{
	var tempStr = ltrim(inStr);

	for (var i=tempStr.length-1; i>0; i--)
	{
		if (tempStr.charAt(i) != " ")
			break;
	}

	return tempStr.substring(0, i+1);
}


function isEmpty(inStr)
{
	return trim(inStr) ? false : true;
}


function empty(inStr) // PLEASE DO NOT USE THIS FUNCTION!!  Use isEmpty() instead.
{
	return isEmpty(inStr);
}


function scriptEncode(inStr, charCode)
{
	var newString = "";

	for (var i=0; i<inStr.length; i++)
	{
		if (inStr.charAt(i) == charCode)
			newString += "\\" + charCode;
		else
			newString += inStr.charAt(i);
	}
	return newString;
}

function quoteEncode(inStr)
{
	var newString = "";
	
	for (var i=0; i<inStr.length; i++)
	{
		if (inStr.charAt(i) == "'" || inStr.charAt(i) == "\"")
			newString += "\\" + charCode;
		else
			newString += inStr.charAt(i);
	}
	return newString;
}


//-- Validations -------------------------------------------------------------------------------

function isDigit(c)
{
	return ((c >= "0") && (c <= "9"));
}


function isLetter(c)
{
	return (((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z")));
}


function isNumeric(strNum)
{
	for (var i=0; i<strNum.length; i++)
	{
		if (!isDigit(strNum.charAt(i)))
			return false;
	}
	return true;
}

function isFloat(strNum)
{
	str_appear = false;
	for (var i=0; i<strNum.length; i++)
	{
		if (!isDigit(strNum.charAt(i))) {
			if (strNum.charAt(i) == '.' && !str_appear) {
				str_appear = true;
			} else {
				return false;
			}
		}
	}
	return true;
}


function isValidEmail(strEmail)
{
	var i, tempChar, pos;

	strEmail = trim(strEmail);

	if (empty(strEmail)) return false;

	for (i=0; i<strEmail.length; i++)
	{
		tempChar = strEmail.charAt(i);

		if (!isLetter(tempChar) && !isDigit(tempChar) && tempChar != "." && tempChar != "_")
			break;
	}

	if ((i == 0) || (i == strEmail.length) || (tempChar != "@"))
		return false;
	else
		pos = i;

	for (i=pos+1; i<strEmail.length; i++)
	{
		tempChar = strEmail.charAt(i);

		if (!isLetter(tempChar) && !isDigit(tempChar))
			break;
	}

	if ((i == pos+1) || (i == strEmail.length) || (tempChar != "."))
		return false;

	while (i < strEmail.length)
	{
		if ((i == pos+1) || (i == strEmail.length) || (tempChar != "."))
			return false;
		else
			pos = i;

		for (i=pos+1; i<strEmail.length; i++)
		{
			tempChar = strEmail.charAt(i);

			if (!isLetter(tempChar) && !isDigit(tempChar))
				break;
		}

		if ((i == pos+1) || ((i == strEmail.length) && (!isLetter(tempChar) && !isDigit(tempChar))))
			return false;
		else
			pos = i;
	}

	return true;
}

function isValidEmail_dw(email) {
	str = email.indexOf('@');
	if (str<1 || str==(email.length-1)) {
		return false;
	} else {
		return true;
	}
}


function isDate(strDate, swapDayMonth)
{
	var datePattern = /^(\d{1,2})(\/)(\d{1,2})(\/)(\d{4})$/;
	var result = strDate.match(datePattern);

	if (!result)
		return false;

	var day   = result[1];
	var month = result[3];
	var year  = result[5];

	if (month < 1 || month > 12)
		return false;
	else
	if (day < 1 || day > 31)
		return false;
	else
	if ((month == 4 || month == 6 || month == 9 || month == 11) && day == 31)
		return false;
	else
	if (month == 2)
	{
		var isLeap = (((year % 4 == 0) && (year % 100 != 0)) || year % 400 == 0);
		if (day > 29 || (day == 29 && !isLeap))
			return false;
	}

	if (swapDayMonth)
	{
		result[1] = month;
		result[3] = day;
	}

	return result[1] + "/" + result[3] + "/" + result[5];
}

