function Trim(TheString)
{
	var len;
	len = TheString.length;
 	while((TheString.substring(0,1) == " ") || (TheString.substring(0,1) == "\r")
			|| (TheString.substring(0,1) == "\n")){ //trim left
 		TheString = TheString.substring(1, len);
  		len = TheString.length;
	}
 	while((TheString.substring(len-1, len) == " ") || (TheString.substring(len-1, len) == "\r")
			|| (TheString.substring(len-1, len) == "\n")){ //trim right
 		TheString = TheString.substring(0, len-1);
  		len = TheString.length;
 	}

 	return TheString;
}

function IsEmailValid(ElemName)
{
	var EmailOk  = true;

	var strFld = Trim(ElemName.value);
	if (strFld != "")
	{
		var AtSym    = ElemName.value.indexOf('@');
		var Period   = ElemName.value.lastIndexOf('.');
		var Space    = ElemName.value.indexOf(' ');
		var Length   = ElemName.value.length - 1;	// Array is from 0 to length-1

		if ((AtSym < 1) ||						// '@' cannot be in first position
				(Period <= AtSym + 1) ||		// Must be atleast one valid char btwn '@' and '.'
				(Period == Length ) ||			// Must be atleast one valid char after '.'
				(Space  != -1))					// No empty spaces permitted
		{
			EmailOk = false;
			alert('Please enter a valid e-mail address!');
			ElemName.focus();
		}
	}

	return EmailOk;
}

function IsNumber(fldNum)
{
	var strNumber = "+-0123456789."

	var strNum = Trim(fldNum.value);
	var i;
	for (i = 0; i < strNum.length; i++)
	{
		if (strNumber.indexOf(strNum.charAt(i)) < 0)
		{
			//alert('Please enter a valid number for ' + fldNum.name + '!');
			fldNum.focus();
			return false;
		}
	}

	return true;
}

function IsInteger(fldInt, sName, bMsg)
{
	if (IsInteger.arguments.length<3)
		bMsg = true;

	var strNum = Trim(fldInt.value);

	if (strNum != "")
	{
		var nTemp = parseInt(strNum);

		if (nTemp != strNum)
		{
			if (bMsg)
			{
				if (sName == "")
				{
					sName = fldInt.name;
				}

				alert('Please enter a valid integer for ' + sName + '!');
				fldInt.focus();
			}

			return false;
		}
	}

	return true;
}

function IsFormComplete(frmThis)
{
	var x       = 0;
	var FormOk  = true;

	while ((x < frmThis.elements.length) && (FormOk))
	{
		if ((frmThis.elements[x].type.toUpperCase() == 'CHECKBOX') || (frmThis.elements[x].type.toUpperCase() == 'HIDDEN')
				|| (frmThis.elements[x].type.toUpperCase() == 'RESET') || (frmThis.elements[x].type.toUpperCase() == 'SUBMIT')
				 || (frmThis.elements[x].type.toUpperCase() == 'IMAGE'))
		{
			x ++;
			continue;
		}

		if (frmThis.elements[x].value == '')
		{
			alert('Please enter the ' + frmThis.elements[x].name + ' and try again.');
			frmThis.elements[x].focus();
			FormOk = false;
		}

		x ++;
	}

	return FormOk;
}

function ShowPopWnd(sPage, nWidth, nHeight)
{
	var nTop = (screen.height - nHeight) / 2;
	var nLeft = (screen.width - nWidth) / 2;

	var dlgWnd = window.open(sPage, "ShowWndDlg",
			"top=" + nTop + ",left=" + nLeft + ",width=" + nWidth + ",height=" +
			nHeight + ",resizable=yes,toolbar=no,status=yes,scrollbars=yes");
}

function moveNodeFromList(lstFrom, lstTo, bRemove)
{
	if (lstFrom.selectedIndex == 0)
	{
		alert("Please select an item first!");
		lstFrom.focus();
		return;
	}

	var nLen = lstTo.options.length;
	lstTo.options.length = nLen + 1;

	var nSel = lstFrom.selectedIndex;
	lstTo.options[nLen].value = lstFrom.options[nSel].value;
	lstTo.options[nLen].text = lstFrom.options[nSel].text;
	lstTo.selectedIndex = nLen;

	if (bRemove)
	{
		nLen = lstFrom.options.length;
		for (var i = nSel; i < nLen - 1; i++)
		{
			lstFrom.options[i].value = lstFrom.options[i + 1].value;
			lstFrom.options[i].text = lstFrom.options[i + 1].text;
		}
		lstFrom.options.length = nLen - 1;

		if ((nLen - 1) == nSel)
			lstFrom.selectedIndex = nSel - 1;
		else
			lstFrom.selectedIndex = nSel;
	}
}

function moveNodeAllFromList(lstFrom, lstTo, bRemove)
{
	var nLen = lstTo.options.length;
	lstTo.options.length += lstFrom.options.length - 1;

	for (var i = 1; i < lstFrom.options.length; i++)
	{
		lstTo.options[nLen + i - 1].value = lstFrom.options[i].value;
		lstTo.options[nLen + i - 1].text = lstFrom.options[i].text;
	}

	lstTo.selectedIndex = 0;

	if (bRemove)
	{
		lstFrom.options.length = 1;
		lstFrom.selectedIndex = 0;
	}
}

function checkFld(fldThis, sName, bMsg)
{
	if (checkFld.arguments.length<3)
		bMsg = true;

	if (fldThis)
	{
		if (Trim(fldThis.value) == "")
		{
			if (bMsg)
			{
				if (sName == "")
				{
					sName = fldThis.name;
				}

				alert("Please input " + sName + " first!");
				if (fldThis.type.toLowerCase() != "hidden")
					fldThis.focus();
			}

			return false;
		}
	}

	return true;
}

function checkListFld(fldThis, sName, bMsg)
{
	if (checkListFld.arguments.length<3)
		bMsg = true;

	if (fldThis)
	{
		if (fldThis.selectedIndex == 0)
		{
			if (bMsg)
			{
				if (sName == "")
				{
					sName = fldThis.name;
				}

				alert("Please select " + sName + " first!");
				fldThis.focus();
			}

			return false;
		}
	}

	return true;
}

function checkPwd(frmThis, nMinLen)
{
	if (Trim(frmThis.pwd.value) == "")
	{
		alert("Password can not be set empty!");
		if (frmThis.pwd.type.toLowerCase() != "hidden")
			frmThis.pwd.focus();
		return false;
	}

	if (Trim(frmThis.repwd.value) == "")
	{
		alert("Please re-confirm your Password!");
		if (frmThis.repwd.type.toLowerCase() != "hidden")
			frmThis.repwd.focus();
		return false;
	}

	if (Trim(frmThis.pwd.value) != Trim(frmThis.repwd.value))
	{
		alert("Please input password correctly!")

		if (frmThis.pwd.type.toLowerCase() != "hidden")
			frmThis.pwd.focus();
		return false;
	}

	if ((nMinLen > 0) && (Trim(frmThis.pwd.value).length < nMinLen))
	{
		alert("Please input password min length > " + nMinLen + "!")

		if (frmThis.pwd.type.toLowerCase() != "hidden")
			frmThis.pwd.focus();
		return false;
	}

	return true;
}

function cancelIt(frmThis)
{
	frmThis.prevpage.value = Trim(frmThis.prevpage.value);

	if (frmThis.prevpage.value != "")
		document.location.href = frmThis.prevpage.value;
	else
		history.go(-1);
}

function closeIt()
{
	if (window.top == window)
		window.close();
	else
		top.close();
}


/*

    Start:    Ntrix eStreaming Enhancements - 01,02,03

    Added by: Dennis Lin
          on: 22/04/2005

    Modified by:
             on:

*/

function getFileExtension(filePath) {
  fileName = getWholeFileName(filePath);
  return fileName.substring(fileName.lastIndexOf('.')+1,fileName.length);
}

function getFileName(filePath)
{
  fileName = getWholeFileName(filePath);
  return fileName.substring(0,fileName.lastIndexOf('.'));
}


function getWholeFileName(filePath)
{
 return ((filePath.indexOf('\\') > -1) ? filePath.substring(filePath.lastIndexOf('\\')+1,filePath.length) : filePath.substring(filePath.lastIndexOf('\\')+1,filePath.length));
}

function Left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}
function Right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}

/*

    End:    Ntrix eStreaming Enhancements - 01,02,03

*/
