<!--

function IsInteger(szStr) {
	for(var i=0; i<szStr.length; i++) {
		// dot is not allow for integer
		if("0123456789+-,".indexOf(szStr.charAt(i)) == -1)
			return false;
	}
	return true;
}

function IsDecimal(szStr, leading, decimal) {
	var dotCount = 0;
	for(var i=0;i<szStr.length;i++) {
		if("0123456789+-.,".indexOf(szStr.charAt(i)) == -1) {
			return false;
		}
		else { // need to check if there are more than one dot
			if(".".indexOf(szStr.charAt(i)) != -1)
				dotCount++;
		}
	}

	if(dotCount > 1)  // more than one dot
		return false;

	if(decimal < 1 && dotCount > 0)
		return false;

	var dotIndex = szStr.indexOf(".");
	if(dotIndex == -1) { // no dot, consider only leading and leght of number
		if(szStr.length > leading)
			return false;
	}
	else {
		if(dotIndex > leading)  // integer number is more than leading allow
			return false;
		if((szStr.length - (dotIndex+1)) > decimal) // decimal number is more than decimal allow
			return false;
	}

	return true;
}

function IsEmailCorrect(szEmail) {
	var i;
	var strtmp = Trim(szEmail);

	for (i=0; i<strtmp.length; i++) {
		if (strtmp.charAt(i) > 'z' || strtmp.charAt(i) < '-' || ("/:;<=>?[\\]^` ".indexOf(strtmp.charAt(i)) != -1))
			return false;
	}
	if (CountStr(strtmp, "@") != 1 || strtmp.indexOf("..") != -1)
		return false;

	if (strtmp.charAt(0) == '@' || strtmp.charAt(strtmp.length - 1) == '@')
		return false;

	while ((i = strtmp.indexOf(".")) != -1) {
		if (i <= 0 || i >= (strtmp.length - 1))
			return false;
		if (strtmp.charAt(i - 1) == '@' || strtmp.charAt(i + 1) == '@')
			return false;
		strtmp = strtmp.substring(i + 1);
	}

	return true;
}

// return true if szStr contains space or empty. Otherwise, return false
function IsEmpty(szStr) {
	for(var i=0; i<szStr.length; i++) {
		if(szStr.charAt(i) == ' ')
			szStr = szStr.substring(i-- + 1, szStr.length);
		else
			break;
	}
	if(szStr.length)
		return false;
	else
		return true;
}

function IsEngString(szStr) {
	szStr = szStr.toLowerCase();
	for(var i=0; i<szStr.length; i++) {
		if(!((szStr.charAt(i) >= 'a' && szStr.charAt(i) <= 'z') || (szStr.charAt(i) >= '0' && szStr.charAt(i) <= '9') || szStr.charAt(i) == ' ' || szStr.charAt(i) == '_' || szStr.charAt(i) == '-' || szStr.charAt(i) == '.'))
			return false;
	}
	return true;
}

function IsThaiString(szStr) {
	for(var i=0; i<szStr.length; i++) {
		if(szStr.charCodeAt(i) <= 128 && szStr.charAt(i) != ' ' && szStr.charAt(i) != '_' && szStr.charAt(i) != '-' && szStr.charAt(i) != '.')
			return false;
	}
	return true;
}

function IsAlphaNumeric(szStr) {
	szStr = szStr.toLowerCase();
	for(var i=0; i<szStr.length; i++) {
		if(!((szStr.charAt(i) >= 'a' && szStr.charAt(i) <= 'z') || (szStr.charAt(i) >= '0' && szStr.charAt(i) <= '9')))
			return false;
	}
	return true;
}

function IsAlphaSymbol(szStr) {
	szStr = szStr.toLowerCase();
	for(var i=0; i<szStr.length; i++) {
		if(!(szStr.charCodeAt(i) >= 32 && szStr.charCodeAt(i) <= 127))
			return false;
	}
	return true;
}

function IsNumeric(szStr) {
	for(var i=0; i<szStr.length; i++) {
		if("0123456789+-.,".indexOf(szStr.charAt(i)) == -1)
			return false;
	}
	return true;
}

function IsLoginName(strLogin) {
	if (IsEmpty(strLogin) || !IsEngString(strLogin) || strLogin.length < 4 || ContainSpace(strLogin))
		return false;
	return true;
}

function IsPassword(strPassword) {
	if (IsEmpty(strPassword) || !IsAlphaSymbol(strPassword) || strPassword.length < 4 || ContainSpace(strPassword))
		return false;
	return true;
}

function CountStr(strSrc, strFind) {
	var i, nCount = 0;

	while ((i = strSrc.indexOf(strFind)) != -1) {
		nCount++;
		strSrc = strSrc.substring(i + strFind.length, strSrc.length);
	}

	return nCount;
}

function Left(szStr, nChar)
{
	if(szStr.length > nChar)
		return szStr.substring(0, nChar);
	else
		return szStr
}

function Right(szStr, nChar)
{
	if(szStr.length > nChar)
		return szStr.substring(szStr.length - nChar, szStr.length);
	else
		return szStr;
}

// Because of the build-in function ".replace" cannot replace any string with the empty string
// the only way we can do is the following...
function RemoveStr(szStr, szRemove)
{
	var sztmp, i;

	while((i = szStr.indexOf(szRemove)) != -1) {
		sztmp = szStr.substring(0, i);
		sztmp += szStr.substring(i + szRemove.length, szStr.length);
		szStr = sztmp;
	}

	return szStr;
}

// Remove white space on the both side;
function Trim(szStr) {
	return TrimLeft(TrimRight(szStr));
}

// Remove white space on the left side;
function TrimLeft(szStr) {
	for(var i=0; i<szStr.length; i++) {
		if(szStr.charAt(i) == ' ')
			szStr = szStr.substring(i-- + 1, szStr.length);
		else
			break;
	}
	return szStr;
}

// Remove white space on the right side;
function TrimRight(szStr) {
	for(var i=szStr.length - 1; i>=0; i--) {
		if(szStr.charAt(i) == ' ')
			szStr = szStr.substring(0, i);
		else
			break;
	}
	return szStr;
}

// Is there the szStr contain any space ?
function ContainSpace(szStr) {
	if(szStr.indexOf(' ') != -1)
		return true;
	return false;
}

// Conver two or more space to the single space
function CompactSpace(szStr) {
	var nSpace = 0;
	var sztmp;
	for(var i=0; i<szStr.length; i++) {
		if(szStr.charAt(i) == ' ') {
			nSpace++;
		}
		else
			nSpace = 0;

		if(nSpace >= 2) {
			nSpace = 0;
			sztmp = szStr.substring(0, i);
			szStr = sztmp + szStr.substring(i + 1, szStr.length);
			i--;
		}
	}
	return szStr;
}

function SwapItem(objLList, objRList, clickMode)
{
	// checking item has selected.
	if(clickMode == "1")	// click move to right
	{
		var objList1 = objLList;
		var objList2 = objRList;

		if(objLList.selectedIndex == -1)
		{
			//alert("Please select user(s) in available user list first.");
			objLList.focus();
			return false;
		}
	}
	else	 // click move to left
	{
		var objList1 = objRList;
		var objList2 = objLList;

		if(objRList.selectedIndex == -1)
		{
			//alert("Please select user(s) in user group list first.");
			objRList.focus();
			return false;
		}
	}

	// move selected item to another list
	var strUnSelect = "";
	for(var i = 0; i < objList1.length; i++)
	{
		if(objList1[i].selected)
		{
			var listindex = objList2.length;
			var newitem = Option(objList1[i].text, objList1[i].value);
			objList2[listindex] = newitem;
		}
		else
			strUnSelect += objList1[i].text + "|" + objList1[i].value + "^";
	}

	// delete all selected list 
	objList1.length = 0;
	
	// put unselect item into list
	while(1)
	{
		nPos = strUnSelect.indexOf("^") + 1;
		if(nPos < 1) break;
		strItem = Left(strUnSelect, nPos - 1);
		strUnSelect = Right(strUnSelect, strUnSelect.length - nPos);

		nPos = strItem.indexOf("|") + 1;
		strText = Left(strItem, nPos - 1);
		strValue = Right(strItem, strItem.length - nPos);

		var listindex = objList1.length;
		var newitem = Option(strText, strValue);
		objList1[listindex] = newitem;
	}
}

function SwapAllItem(objLList, objRList, clickMode)
{
	// checking item has selected.
	if(clickMode == "1")	// click move to right
	{
		var objList1 = objLList;
		var objList2 = objRList;
	}
	else	 // click move to left
	{
		var objList1 = objRList;
		var objList2 = objLList;
	}

	// move selected item to another list
	var strUnSelect = "";
	for(var i = 0; i < objList1.length; i++)
	{
		var listindex = objList2.length;
		var newitem = Option(objList1[i].text, objList1[i].value);
		objList2[listindex] = newitem;
	}

	// delete all selected list 
	objList1.length = 0;
	
	// put unselect item into list
	while(1)
	{
		nPos = strUnSelect.indexOf("^") + 1;
		if(nPos < 1) break;
		strItem = Left(strUnSelect, nPos - 1);
		strUnSelect = Right(strUnSelect, strUnSelect.length - nPos);

		nPos = strItem.indexOf("|") + 1;
		strText = Left(strItem, nPos - 1);
		strValue = Right(strItem, strItem.length - nPos);

		var listindex = objList1.length;
		var newitem = Option(strText, strValue);
		objList1[listindex] = newitem;
	}
}

function dateValidation(cmbDay, cmbMonth, cmbYear) 
{	
	var nDay = cmbDay.options[cmbDay.options.selectedIndex].value;
	var nMonth = cmbMonth.options[cmbMonth.options.selectedIndex].value;
	var nYear = cmbYear.options[cmbYear.options.selectedIndex].value;

	if(nDay == 0 || nMonth == 0 || nYear == 0)
		return;

	var nMaxDay = 0;

	if(nMonth == 4 || nMonth == 6 || nMonth == 9 || nMonth == 11)
		nMaxDay = 30;
	else if(nMonth == 2) {
		if(nYear % 4 == 0 && (nYear % 100 != 0 || nYear % 400 == 0))
			nMaxDay = 29;
		else
			nMaxDay = 28;
	}
	else
		nMaxDay = 31;

	if(nDay > nMaxDay)
		for(var i = 0; i < 31; i++)
			if(cmbDay[i].value == nMaxDay)
				cmbDay.options.selectedIndex = i;
}

function dateSelected(COMBONAME,neFlag) 
{	
	var nDay = COMBONAME[0].options.selectedIndex;
	var nMonth = COMBONAME[1].options.selectedIndex;
	var nYear = COMBONAME[2].options.selectedIndex;

	if (neFlag && nDay == 0 && nMonth == 0 && nYear == 0){
	   return false; 
	}else if(nDay == 0 && nMonth == 0 && nYear == 0){
		return true;
	}
	
	if (nDay != 0 && nMonth != 0 && nYear != 0){
		return true;
	}else{
			if(nDay == 0){					
					COMBONAME[0].focus();
					return false;
			}
	
			if(nMonth == 0){
					COMBONAME[1].focus();
					return false;
			}

			if(nYear == 0){
					COMBONAME[2].focus();
					return false;
			}
	}
}

function isSelectedDate(COMBONAME) 
{	
	var nDay = COMBONAME[0].options.selectedIndex;
	var nMonth = COMBONAME[1].options.selectedIndex;
	var nYear = COMBONAME[2].options.selectedIndex;

	if(nDay == 0 && nMonth == 0 && nYear == 0){
		return false;
	}else{
		if (dateSelected(COMBONAME))
		{
			return true;
		}else{
			return false;
		}
	}
}
function numbersonly(myfield, e, dec)	{
var key;
var keychar;

if (window.event)
   key = window.event.keyCode;
else if (e)
   key = e.which;
else
   return true;
keychar = String.fromCharCode(key);

// control keys
if ((key==null) || (key==0) || (key==8) || 
    (key==9) || (key==13) || (key==27) )
   return true;

// numbers
else if (((".0123456789").indexOf(keychar) > -1))
   return true;

// decimal point jump
else if (dec && (keychar == "."))
   {
   myfield.form.elements[dec].focus();
   return false;
   }
else
   return false;
}
	function GoToPage(frm, nPage) {
		frm.hPage.value = nPage;
		frm.submit();
	}
	function GoToPage2(frm, nPage) {
		frm.hPage2.value = nPage;
		frm.submit();
	}
// Conver one space to 
function RepactSpace(szStr) {
	var nSpace = 0;
	var sztmp;
	for(var i=0; i<szStr.length; i++) {
		if(szStr.charAt(i) == ' ') {
			nSpace++;
		}
		else
			nSpace = 0;

		if(nSpace >= 1) {
			nSpace = 0;
			sztmp = szStr.substring(0, i);
			szStr = sztmp + szStr.substring(i + 1, szStr.length);
			i--;
		}
	}
	return szStr;
}

function AddZero(szStr) {
	if (szStr.length==1){
		return "0"+szStr;
	}
	return szStr;
}
//-->