/**
 * @author		Library Automation Services Team
 * @version		1.0
 * @copyright	Sarawak Information Systems Sdn. Bhd.
 *
 * Development Environment			:	TextPad 4.4.2
 * Name of the Application			:	string.js
 * Overview of Application			:	Contains javascript functions for 'string' operations
 * Creation/Modification History	:
 *		29-Jun-2001		Created
 *		15-Nov-2001		Modified
 *
 * 
 * Function Declaration:
 *		function isStrLess(obj, intLength)
 *		function isStrMore(obj, intLength)
 *		function isEmpty(obj)
 *		function trimleft(strString)
 *		function trimright(strString)
 *		function trim(strString)
 *		function trimcleft(strString, strChar)
 *		function trimcright(strString, strChar)
 *		function trimc(strString, strChar)
 *		function Replace(obj, strChar1, strChar2)
 *		function formatNumber(num, idx)
 *		function checkStr(obj, num)
 *
 */

/**
 * Check if an object value's length is less than the length specified and not 0 length
 */
function isStrLess(obj, intLength)
{	var intValue = parseInt(intLength);
	var strValue = String(obj.value);
	if (isNaN(intValue))
	{	intValue = 1;
	}
	if ((strValue.length < intValue) && (strValue.length != 0))
	{	return true;
	}
	return false;
}

/**
 * Check if an object value's length is more or equal than the length specified
 */
function isStrMore(obj, intLength)
{	var intValue = parseInt(intLength);
	var strValue = String(obj.value);
	if (isNaN(intValue))
	{	intValue = 1;
	}
	if (strValue.length >= intValue)
	{	return true;
	}
	return false;
}

/**
 * Check if an object's value is empty
 */
function isEmpty(obj)
{	if ((obj.value == null) || (obj.value == ""))
	{	return true;
	}
	return false;
}

/**
 * Trim away the first few left space characters
 */
function trimleft(strString)
{	var strValue = String(strString);
	var strResult = String('');
	var bolSpace = true;
	for (var i=0;i<strValue.length;i++)
	{	if (strValue.charAt(i) != ' ')
		{	bolSpace = false;
		}
		if (bolSpace == false)
		{	strResult = strResult + strValue.charAt(i);
		}
	}
	return strResult;
}

/**
 * Trim away the first few right space characters
 */
function trimright(strString)
{	var strValue = String(strString);
	var strResult = String('');
	var bolSpace = true;
	for (var i=(strValue.length-1);i>-1;i--)
	{	if (strValue.charAt(i) != ' ')
		{	bolSpace = false;
		}
		if (bolSpace == false)
		{	strResult = strValue.charAt(i) + strResult;
		}
	}
	return strResult;
}

/**
 * Trim away the first few left and right space characters
 */
function trim(strString)
{	var strValue = String(strString);
	var strResult = String('');
	strResult = trimleft(strValue);
	strResult = trimright(strResult);
	return strResult;
}

/**
 * Trim away the first few left ... characters
 */
function trimcleft(strString, strChar)
{	var strValue = String(strString);
	var strC = String(strChar);
	var strResult = String('');
	var bolSpace = true;
	for (var i=0;i<strValue.length;i++)
	{	if (strValue.charAt(i) != strC.charAt(0))
		{	bolSpace = false;
		}
		if (bolSpace == false)
		{	strResult = strResult + strValue.charAt(i);
		}
	}
	return strResult;
}

/**
 * Trim away the first few right ... characters
 */
function trimcright(strString, strChar)
{	var strValue = String(strString);
	var strC = String(strChar);
	var strResult = String('');
	var bolSpace = true;
	for (var i=(strValue.length-1);i>-1;i--)
	{	if (strValue.charAt(i) != strC.charAt(0))
		{	bolSpace = false;
		}
		if (bolSpace == false)
		{	strResult = strValue.charAt(i) + strResult;
		}
	}
	return strResult;
}

/**
 * Trim away the first few left and right ... characters
 */
function trimc(strString, strChar)
{	var strValue = String(strString);
	var strC = String(strChar);
	var strResult = String('');
	strResult = trimcleft(strValue, strC);
	strResult = trimcright(strResult, strC);
	return strResult;
}

/**
 * Replaces all specified character in the value of an object with another character
 */
function Replace(obj, strChar1, strChar2)
{	var strString = String(obj.value);
	while (strString.indexOf(strChar1) > 0)
	{	strString = strString.replace(strChar1, strChar2);
	}
	return strString;
}
/*
function Replace(str, strChar1, strChar2, pass0here)
{	var strString = String(str);
	while (strString.indexOf(strChar1) > 0)
	{	strString = strString.replace(strChar1, strChar2);
	}
	return strString;
}*/

/**
 * Replaces all specified character in a string with another character
 */
function ReplaceStr(str, strChar1, strChar2)
{	var strString = String(str);
	while (strString.indexOf(strChar1) > 0)
	{	strString = strString.replace(strChar1, strChar2);
	}
	return strString;
}
function sReplace(str, strChar1, strChar2)
{	var strString = String(str);
	while (strString.indexOf(strChar1) > 0)
	{	strString = strString.replace(strChar1, strChar2);
	}
	return strString;
}



/**
 * Format the number into the decimal point that you want
 */
function formatNumber(num, abs, idx) {
var	formatedNumber;
var absNum = Math.floor(parseFloat(num));
var numLen = num.toString().length;
var dotPos = num.toString().indexOf('.') + 1;
var extractStr;
var tempStr = 0;
	if (dotPos > 0) {
		extractStr = num.toString().substring(dotPos, numLen);
		strLen = extractStr.toString().length;
		strIdx = strLen - 1;
		if (strLen > idx) {
			while (strLen > idx) {
				lastStr = extractStr.toString().substring(strIdx--, strLen--);
				extractStr = extractStr.toString().substring(0, strLen);
				if (lastStr > 4) {
					bfrLen = extractStr.toString().length;
					extractStr = parseInt(extractStr) + 1;
					aftLen = extractStr.toString().length;
					if (aftLen > bfrLen) {
						addedLen = aftLen - bfrLen;
						tempStr = parseInt(tempStr) + parseInt(extractStr.toString().substring(0, addedLen));
						extractStr = extractStr.toString().substring(addedLen, ++bfrLen);
					}
				}
			}
		}
		else {
			loop = idx - strLen;
			for (var i=0; i<loop; i++) {
				extractStr = extractStr + '0';
			}
		}
	}
	else {
		extractStr = '0';
		for (var i=1; i<idx; i++) {
				extractStr = extractStr + '0';
		}
	}
	absNum = parseInt(absNum) + parseInt(tempStr);
	if ((parseFloat(num) < 0) && (num.toString().indexOf('.') > 0) && (num.toString().substring(dotPos, numLen) != "")) {
		absNum = parseFloat(absNum) + 1;
		if (parseInt(absNum) >= 0) {
			absNum = '-' + absNum.toString();
		}
	}
	if (abs > absNum.toString().length) {
		loop = abs - absNum.toString().length;
		for (var i=0; i<loop; i++) {
			absNum = '  ' + absNum.toString();
		}
	}
	formatedNumber = absNum + '.' + extractStr;
	return formatedNumber;
}

/* for checking for the Text area to limit the length of string
*/
function checkStr(obj, num) {
	var len = obj.value.length

	if ((len == 1) && (obj.value.substring(0, 1) == " ")) {
		obj.value = ""
		len = 0
	}
	if (len > num) {
		obj.value = f.value.substring(0, num)
	}
}

// Validate e-mail address entered by the user
function validEMailFormat(eMailObj) {
var intCount = 0;
var intInnerCount = 0;
var arrTemp = new Array("'", "\"", "#", "%", "&", ";", "?");
var strMsg = "";
	for (intCount = 0; intCount < arrTemp.length; intCount++) {
		if (eMailObj.value.indexOf(arrTemp[intCount]) >= 0) {
			for (intInnerCount = 0; intInnerCount < arrTemp.length; intInnerCount++) {
				strMsg = strMsg + " " + arrTemp[intInnerCount];
			}
			alert("Invalid E-Mail Format encountered !\nThank You");
			eMailObj.focus();
			return false;
		}
	}
	if ((eMailObj.value.indexOf('@') < 1) || (eMailObj.value.indexOf('.') < 2) || eMailObj.value.indexOf('.') > (eMailObj.value.length-3)) {
		alert("Invalid E-Mail Format encountered !\nThank You");
		eMailObj.focus();
		return false;
	}
	if ((eMailObj.value.indexOf('.') - eMailObj.value.indexOf('@')) < 1 ) {
		alert("Invalid E-Mail Format encountered !\nThank You");
		eMailObj.focus();
		return false;
	}
	return true;
}