// isEmpty - Check For Empty, "space" character is considered as empty too.
// Parameter : t - textbox object
// Example   :
//   <form name="f1"><input type="text" name="abc"></form>
//   <script language="javascript">
//   if (isEmpty(document.f1.abc)) alert("Please input abc");
//   </script>
function isEmpty(t)
{
	var s = new String(t.value);
	var re = /^\s*$/;
	
	if (s.match(re))
		return true
	else
		return false
}

// isInteger - Check For numeric character, "space" is allowed at the beginning and ending
// Parameter : t - textbox object
// Example   :
//   <form name="f1"><input type="text" name="abc"></form>
//   <script language="javascript">
//   if (! isInteger(document.f1.abc)) alert("Please input integer");
//   </script>
function isInteger(t)
{
	var s = new String(t.value);
	var re = /^\s*\d*\s*$/;
	
	if (s.match(re))
		return true
	else
		return false
}

// isEmail - Check For E-Mail address, the valid format is XXX@YYY.ZZZ
// Parameter : t - textbox object
// Example   :
//   <form name="f1"><input type="text" name="abc"></form>
//   <script language="javascript">
//   if (! isEmail(document.f1.abc)) alert("Please input email address");
//   </script>
function isEMail(t)
{
	var s = new String(t.value);
	var re = /^\s*\S+[@]\S+[\.]\S+\s*$/;
	
	if (s.match(re))
		return true
	else
		return false
}

// isIP - Check For IP address, the valid format is ###.###.###.###
// Parameter : t - textbox object
// Example   :
//   <form name="f1"><input type="text" name="abc"></form>
//   <script language="javascript">
//   if (! isIP(document.f1.abc)) alert("Please input ip address");
//   </script>
function isIP(t)
{
	var s = new String(t.value);
	var re = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/;

	if (!s.match(re)) return false;

	var ips = s.split(".");
	for (i=0; i<4; i++) {
		if (ips[i] > 255) return false;
	}
	
	return true;	
}

// isNum - Check For Numeric
// Parameter : t      - textbox object
//             iLen   - total number of digits
//             iDec   - number of digits after decimal point
//             Signed - signed (true) or unsigned number (false)
// Example   :
//   <form name="f1"><input type="text" name="abc"></form>
//   <script language="javascript">
//   if (! isNum(document.f1.abc, 5, 2, true)) // Range of value : 999.99 to -999.99
//     alert("Invalid value.");
//   </script>
function isNum(t, iLen, iDec, Signed)
{
	var s = new String(t.value);
	var reg, re;
	var iNum;
	
	iNum = iLen - iDec;
	
	if (Signed) {
		if (iDec > 0)
			reg = "^[-]?[0]*\\d{1," + iNum + "}$|^[-]?[0]*\\d{1," + iNum + "}\\.\\d{0," + iDec + "}$";
		else
			reg = "^[-]?[0]*\\d{1," + iNum + "}$";
	} else {
		if (iDec > 0)
			reg = "^[0]*\\d{1," + iNum + "}$|^[0]*\\d{1," + iNum + "}\\.\\d{0," + iDec + "}$";
		else
			reg = "^[0]*\\d{1," + iNum + "}$";
	}
	
	re = new RegExp(reg);
	return s.match(re);
}

// isDate - Check For Date in format YYYY/MM/DD
// Parameter : t      - textbox object
// Example   :
//   <form name="f1"><input type="text" name="abc"></form>
//   <script language="javascript">
//   if (! isDate(document.f1.abc))
//     alert("Invalid date.");
//   </script>
function isDate(t)
{
	var aDaysInMonth=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	var s = new String(t.value);
	var re = /^\d{4}\/\d{2}\/\d{2}$/; // Change for other date format
	var iMonth, iDay, iYear, iDaysInMonth;
	
	if (!s.match(re)) return false;
	
	var aValueDMY = s.split("/");
	iYear   = aValueDMY[0]; // Change for other date format
	iMonth = aValueDMY[1]; // Change for other date format
	iDay  = aValueDMY[2]; // Change for other date format
	
	if (iMonth > 12) return false;
	
	iDaysInMonth=(iMonth!=2)?aDaysInMonth[iMonth-1]:
		((iYear%4==0 && iYear%100!=0 || iYear % 400==0)?29:28);
	
	if (iDay > iDaysInMonth) return false;
	
	return true;
}

function isDateDMY(t)
{
	var aDaysInMonth=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	var s = new String(t.value);
	var re = /^\d{2}\/\d{2}\/\d{4}$/; // Change for other date format
	var iMonth, iDay, iYear, iDaysInMonth;
	
	if (!s.match(re)) return false;
	
	var aValueDMY = s.split("/");
	iYear   = aValueDMY[2]; // Change for other date format
	iMonth = aValueDMY[1]; // Change for other date format
	iDay  = aValueDMY[0]; // Change for other date format
	
	if (iMonth > 12) return false;
	
	iDaysInMonth=(iMonth!=2)?aDaysInMonth[iMonth-1]:
		((iYear%4==0 && iYear%100!=0 || iYear % 400==0)?29:28);
	
	if (iDay > iDaysInMonth) return false;
	
	return true;
}


// isTime - Check For Time in format HH:MM
// Parameter : t      - textbox object
// Example   :
//   <form name="f1"><input type="text" name="abc"></form>
//   <script language="javascript">
//   if (! isTime(document.f1.abc))
//     alert("Invalid Time.");
//   </script>
function isTime(t)
{
	var s = new String(t.value);
	var re = /^\d{2}:\d{2}$/;

	if (!s.match(re)) {
		return false;
	}
	
	var hm = s.split(":", 2);
	// Check hour
	if (hm[0] > 24) {
		return false;
	}
	
	// Check minute
	if (hm[1] > 59) {
		return false;
	}
	if (hm[0] == 24 && hm[1] > 0) {
		return false;
	}

	return true;
}

// dateDiff - Calculate no. of days between two date
// Parameter : d1      - textbox object, start date (smaller value)
//             d2      - textbox object, end date(bigger value)
// Example   :
//   <form name="f1"><input type="text" name="abc"><input type="text" name="def"></form>
//   <script language="javascript">
//   if (dateDiff(document.f1.abc, document.f1.def) > 6)
//     alert("The date difference should be less than a week.");
//   </script>
function dateDiff(d1, d2)
{
	var iMonth1, iDay1, iYear1, aValueDMY1, date1;
	var iMonth2, iDay2, iYear2, aValueDMY2, date2;
	
	var s = new String(d1.value);
	aValueDMY1 = s.split("/");
	iYear1  = aValueDMY1[0];
	iMonth1 = aValueDMY1[1] - 1;
	iDay1   = aValueDMY1[2];
	date1   = new Date(iYear1, iMonth1, iDay1);
	
	var s = new String(d2.value);
	aValueDMY2 = s.split("/");
	iYear2  = aValueDMY2[0];
	iMonth2 = aValueDMY2[1] - 1;
	iDay2   = aValueDMY2[2];
	date2   = new Date(iYear2, iMonth2, iDay2);

	var numday = (date2 - date1) / 1000 / 3600 / 24;
	return numday;
}

// countCheck - Count number of checkbox with same name is checked.
// Parameter : frm     - form object
//             chk     - string, name of the checkbox
// Example   :
//   <form name="f1"><input type="checkbox" name="abc"><input type="checkbox" name="abc"></form>
//   <script language="javascript">
//   if (countCheck(document.f1, abc) < 2)
//     alert("Please select at least two items.");
//   </script>
function countCheck(frm, chk)
{
	var c = frm.elements[chk];
	if (c == null) return 0;

	if (c.length == null) {
		if (c.checked) return 1;
		else return 0;
	} else {
		var count = 0;
		for (var i=0; i<c.length; i++) {
			if (c[i].checked) count++;
		}
		return count;
	}
}

function RadioCheck(el)
{
//	if (el == null || el == undefined) return 0;

	var count = 0;
	for (var i=0; i<el.length; i++) {
		if (el[i].checked) count++;
	}
	return count;
}


function Trim(TRIM_VALUE)
{
   if(TRIM_VALUE.length < 1)
   {
      return"";
   }
   TRIM_VALUE = RTrim(TRIM_VALUE);
   TRIM_VALUE = LTrim(TRIM_VALUE);
   if(TRIM_VALUE==""){
     return "";
   }
   else{
     return TRIM_VALUE; 
   }
} //End Function

function RTrim(VALUE)
{
  var w_space = String.fromCharCode(32);
  var v_length = VALUE.length;
  var strTemp = "";
  if(v_length < 0)
  {
    return"";
  }
  var iTemp = v_length -1;

  while(iTemp > -1)
  {
     if(VALUE.charAt(iTemp) == w_space)
     {
     }
     else{
       strTemp = VALUE.substring(0,iTemp +1);
       break;
     }
     iTemp = iTemp-1;

  } //End While
  return strTemp;

} //End Function

function LTrim(VALUE)
{
   var w_space = String.fromCharCode(32);
   if(v_length < 1){
     return"";
   }
   var v_length = VALUE.length;
   var strTemp = "";

   var iTemp = 0;

   while(iTemp < v_length){
     if(VALUE.charAt(iTemp) == w_space){
     }
     else{
       strTemp = VALUE.substring(iTemp,v_length);
       break;
     }
     iTemp = iTemp + 1;
   } //End While
  return strTemp;
} //End Function

