<!--
function button(which)
{
  Button = which;
}

function checkAll(frm1, strFieldName)
{
  var len = frm1.elements.length;
  for (var i = 0; i < len; i++) {
    var e = frm1.elements[i];
    if (e.name == strFieldName) {
      e.checked = true;
    }
  }
}

function uncheckAll(frm1, strFieldName)
{
  var len = frm1.elements.length;
  for (var i = 0; i < len; i++) {
    var e = frm1.elements[i];
    if (e.name == strFieldName) {
      e.checked = false;
    }
  }
}

function chkSelected(frm1, strFieldName, strStringName)
{
  var len = frm1.elements.length;
  var bselected = false;

  for (var i = 0; i < len; i++) {
    var e = frm1.elements[i];
    if (e.name == strFieldName) {
      if (e.checked == true) {
	  bselected = true;
	  break;
      }
    }	
  }

  if (!bselected) {
    alert("Please select at least one " + strStringName + ".");
    return false;
  }

  return true
}

function IsNumeric(objName, strField, iOption)
{
   var ValidChars;
   var IsNumber=true;
   var Char;
   
   if (iOption == 1)
      ValidChars = "0123456789"
   else   
      ValidChars = "0123456789."
      
   if (Trim(objName.value) != '') {   
      for (i = 0; i < objName.value.length && IsNumber == true; i++) {        
         Char = objName.value.charAt(i); 
         if (ValidChars.indexOf(Char) == -1) 
            {
            IsNumber = false;
            }
      }
      if (!IsNumber) {
         alert("Please ensure that " + strField + " field is numeric.");
         objName.focus();   
      }
   }
   return IsNumber;  
}

function validateNumberRange(objName1, objName2, strField1, strField2) {
  if (Trim(objName1.value)!='' && Trim(objName2.value)!='') {
    if (parseInt(objName1.value) > parseInt(objName2.value)) {
      alert("Please ensure that " + strField1 + " is smaller than " + strField2 + ".");
      objName1.focus(); 
      return false;
    }
  }
  return true;
}

function chkAlphaNum(objName, strField) {
  var bAlpha = false;
  var bNum = false;
  var sAlpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
  var sNum = "0123456789";
  var mystring = objName.value;
	
  for (var i=0; i<mystring.length; i++) {
    if (sAlpha.indexOf(mystring.charAt(i)) != "-1") {
      bAlpha = true;
    } 
    if (sNum.indexOf(mystring.charAt(i)) != "-1") {
      bNum = true;
    }
    if (bAlpha && bNum) {        
      return true;
    }  
  }
  
  alert("Please ensure that " + strField + " field is alpha-numeric.");
  objName.focus();    
  return false;
}
  
function checkEmpty(objName, strField) 
{
   var boolOK;
   boolOK = true;
	 
   if (Trim(objName.value) == "") 
   {
      alert("Please do not leave any blank for " + strField + ".");
      objName.focus();
      boolOK = false;
   }
   
   return boolOK;
}

function checkEmptyCheckbox(objName, strField) 
{
   var boolOK;
   boolOK = false;

   for (var i=0; i<objName.length; i++) {
      if (objName[i].checked)
         boolOK = true;
   }		

   if (!boolOK) {
      alert("Please select " + strField + ".");
   }

   return boolOK;
}

function checkEmptyRadio(objName, strField) 
{
   var boolOK;
   boolOK = false;

   for (var i=0; i<objName.length; i++) {
      if (objName[i].checked)
         boolOK = true;
   }		

   if (!boolOK) {
      alert("Please select " + strField + ".");
   }

   return boolOK;
}

function checkMinLength(objName, strField, intLength) 
{
   var boolOK;
   boolOK = true;
   
   if (trimAll(objName.value).length < intLength) 
   {
      alert("Length of " + strField + " must be at least " + intLength + " characters.");
      objName.focus();
      boolOK = false;
   }
   
   return boolOK;
}

function checkMaxLength(objName, strField, intLength) 
{
   var boolOK;
   boolOK = true;
   
   if (trimAll(objName.value).length > intLength) 
   {
      alert("Length of " + strField + " must not be more than " + intLength + " characters.");
      objName.focus();
      boolOK = false;
   }
   
   return boolOK;
}

function validateURL(theUrl) 
{
   var boolOK;
   
   if (trimAll(theUrl.value).match(/^(http|ftp|https)\:\/\/\w+([\.\-]\w+)*\.\w{2,4}(\:\d+)*([\/\.\-\?\&\%\#\=]\w+)*\/?$/i) ||
      trimAll(theUrl.value).match(/^mailto\:\w+([\.\-]\w+)*\@\w+([\.\-]\w+)*\.\w{2,4}$/i)) 
   {
      boolOK = true;
   }
   else {
      alert("Please enter a valid URL string.");
      boolOK = false;
   }

   return boolOK;   
}

function clearOrderBy(txtDateFrom, txtDateTo) 
{
   if ((txtDateFrom.value!="") && (txtDateTo.value!=""))
   {
       endDateAfter = Date.parse(converttodate(txtDateFrom.value));
       endDateBefore = Date.parse(converttodate(txtDateTo.value));
       
       if (endDateAfter > endDateBefore)
       {
	   alert("Start Date cannot be later than Stop Date");
	   txtDateFrom.focus();
	   return false;
       }
   }
   return true;
}

function validateDateB4Today(txtDate, strDate) 
{
   if (txtDate.value!="")
   {
	  var dteDate = new Date();
      arrDate = txtDate.value.split("/");
	  dteDate.setFullYear(arrDate[2],arrDate[1]-1,arrDate[0]);

	  if (dteDate < (new Date())) {
	    alert("Please select a date on or after today's date");
	    return false;
	  }
   }
   return true;
}

function validateDateRange(txtDateFrom, txtDateTo) 
{
   if ((txtDateFrom.value!="") && (txtDateTo.value!=""))
   {
       endDateAfter = Date.parse(converttodate(txtDateFrom.value));
       endDateBefore = Date.parse(converttodate(txtDateTo.value));
       
       if (endDateAfter > endDateBefore)
       {
	   alert("Start Date cannot be later than End Date");
	   txtDateFrom.focus();
	   return false;
       }
   }
   return true;
}

function chkDateOneYear(txtStartDate, txtEndDate)
{
	 //Check 1 Year limitation
    if ((txtStartDate.value!="") && (txtEndDate.value!=""))
    {
		var minutes = 1000 * 60;
		var hours = minutes * 60;
		var days = hours * 24;
		var years = days * 365;

		endDateAfter = Date.parse(converttodate(txtStartDate.value));
		endDateBefore = Date.parse(converttodate(txtEndDate.value));
		if ((endDateBefore/years)-(endDateAfter/years)>1.0)
		{
			alert("Date range must be within 1 year");
			return false;
		}
    }
    return true;
}

function converttodate(datefield)
{
   var strDate;
   var strDateArray;
   var strDay;
   var strMonth;
   var strYear;
   var intday;
   var intMonth;
   var intYear;

   var strMonthArray = new Array(12);
   strMonthArray[0] = "Jan";
   strMonthArray[1] = "Feb";
   strMonthArray[2] = "Mar";
   strMonthArray[3] = "Apr";
   strMonthArray[4] = "May";
   strMonthArray[5] = "Jun";
   strMonthArray[6] = "Jul";
   strMonthArray[7] = "Aug";
   strMonthArray[8] = "Sep";
   strMonthArray[9] = "Oct";
   strMonthArray[10] = "Nov";
   strMonthArray[11] = "Dec";

   strDate = datefield

   strDateArray = strDate.split("/");

   strDay = strDateArray[0];
   strMonth = strDateArray[1];
   strYear = strDateArray[2];

   intday = parseInt(strDay, 10);
   intMonth = parseInt(strMonth, 10);
   intYear = parseInt(strYear, 10);

   datefield = strMonthArray[intMonth-1] + " " + intday+" " + strYear;
   return datefield;
}

function trimAll(inputString) 
{
   var retValue;
   var ch;
   
   if (typeof inputString != "string") 
   { 
      return inputString; 
   }
   
   retValue = inputString;
   ch = retValue.substring(0, 1);
     
   // Check for spaces at the beginning of the string
   while (ch == " ") 
   { 
      retValue = retValue.substring(1, retValue.length);
      ch = retValue.substring(0, 1);
   }
   
   ch = retValue.substring(retValue.length-1, retValue.length);
   
   // Check for spaces at the end of the string
   while (ch == " ") 
   { 
      retValue = retValue.substring(0, retValue.length-1);
      ch = retValue.substring(retValue.length-1, retValue.length);
   }
   
   // Note that there are two spaces in the string - look for multiple spaces within the string
   while (retValue.indexOf("  ") != -1) 
   { 
      retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length); // There are two spaces in each of the strings
   }

   return retValue; 
} // Ends the "trimAll" function

function chkFileExtension(objName, extenstionType, equalType)
{
   myString = new String(Trim(objName.value));
   splitString = myString.split(".");
   if (equalType == "==") {
      if (splitString[splitString.length-1].toLowerCase() == extenstionType.toLowerCase()) {
         alert("File not allowed.");
         return false;
      }
      else {
	 return true;
      }
   }
   else {
      if (splitString[splitString.length-1].toLowerCase() != extenstionType.toLowerCase()) {
         alert("File not allowed.");
    	 return false;
      }
      else {
	 return true;
      }
   }
}

// Declaring valid date character, minimum year and maximum year
var dtCh= "/";
var minYear=1900;
var maxYear=2100;

function isInteger(s)
{
   var i;
   for (i = 0; i < s.length; i++)
   {   
      // Check that current character is number.
      var c = s.charAt(i);
      if (((c < "0") || (c > "9"))) return false;
   }
   // All characters are numbers.
   return true;
}

function stripCharsInBag(s, bag)
{
   var i;
   var returnString = "";
   // Search through string's characters one by one.
   // If character is not in bag, append to returnString.
   for (i = 0; i < s.length; i++)
   {   
      var c = s.charAt(i);
      if (bag.indexOf(c) == -1) returnString += c;
   }
   return returnString;
}

function daysInFebruary(year)
{
   // February has 29 days in any year evenly divisible by four,
   // EXCEPT for centurial years which are not also divisible by 400.
   return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}

function DaysArray(n) 
{
   for (var i = 1; i <= n; i++) 
   {
      this[i] = 31
      if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
      if (i==2) {this[i] = 29}
   } 
   return this;
}

function isDate(dtStr)
{
   var daysInMonth = DaysArray(12)
   var pos1 = dtStr.indexOf(dtCh)
   var pos2 = dtStr.indexOf(dtCh,pos1+1)
   var strDay = dtStr.substring(0,pos1)
   var strMonth = dtStr.substring(pos1+1,pos2)
   var strYear = dtStr.substring(pos2+1)
   strYr = strYear

   if (strDay.charAt(0) == "0" && strDay.length > 1) strDay = strDay.substring(1)
   if (strMonth.charAt(0) == "0" && strMonth.length > 1) strMonth = strMonth.substring(1)
   for (var i = 1; i <= 3; i++) 
   {
      if (strYr.charAt(0) == "0" && strYr.length > 1) strYr = strYr.substring(1)
   }

   month = parseInt(strMonth)
   day = parseInt(strDay)
   year = parseInt(strYr)
   if (pos1==-1 || pos2==-1)
   {
      alert("Please enter a valid date (DD/MM/YYYY) for Date of Birth.");
      return false;
   }
   if (strMonth.length<1 || month<1 || month>12)
   {
      alert("Please enter a valid month");
      return false;
   }
   if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month])
   {
      alert("Please enter a valid day");
      return false;
   }
   if (strYear.length != 4 || year==0 || year<=minYear || year>=maxYear)
   {
      alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear);
      return false;
   }
   if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false)
   {
      alert("Please enter a valid date");
      return false;
   }
   return true;
}

function validDate(dateObj)
{
   if (isDate(dateObj.value) == false)
   {
      dateObj.focus();
      return false;
   }
   return true
}

function validEmail(emailObj, strField)
{
   var emailExp = new RegExp("^[A-Za-z0-9\_\.\-]+[A-Za-z0-9\_\.\-]?[A-Za-z0-9]+@[A-Za-z0-9]+[A-Za-z0-9\_\-]?[A-Za-z0-9\-]+[.]{1}[A-Za-z0-9]+[.]?[A-Za-z]+$");
   if (!emailExp.test(Trim(emailObj.value)))
   {
      alert("Please enter valid email for the " + strField + " field.");
      emailObj.focus();
      return false;
   } 
   return true;
}


function check_nric(field, strField)
{
	var bValid = true;
	
	if (Trim(field.value) != "")
	{
		// these variables used for NRIC checks
		weight = new Array("2","7","6","5","4","3","2");
		u_reftb = new Array("A","B","C","D","E","F","G","H","I","Z","J");
		f_reftb = new Array("K","L","M","N","P","Q","R","T","U","W","X");
		var i=0, prod=0, sum=0, rem = 0 ;
		var pfx, chkdgt;

		pfx    = Trim(field.value).charAt(0).toUpperCase();
		chkdgt = Trim(field.value).charAt(8).toUpperCase();

		if (pfx != 'I' && pfx != 'S' && pfx != 'T' &&
		pfx != 'F' && pfx != 'G')
		{ bValid = false; }
		for(i=0; i<7; i++)
		{
			prod = weight[i] * Trim(field.value).charAt(i+1);
			sum +=prod;
		}
		if(pfx == 'T' || pfx == 'G')
		{
			sum +=4;
		}
		rem = sum % 11;
		if (pfx == 'I' || pfx == 'S' || pfx == 'T')
		{
			if (chkdgt == u_reftb[(11-rem) -1])
			{ bValid = true; }
			else
			{ bValid = false; }
		}
		else
		{
			if (chkdgt == f_reftb[(11-rem) -1])
			{ bValid = true; }
			else
			{ bValid = false;	}
		}
	}
	if (!bValid) {
		alert("Please enter a valid " + strField + ".");
		field.focus();
	}
	return bValid
}

// [13-Feb-2008 SW] Priority Registration
function getDate(strDate) 
{
		var dteDate;
		
		if (strDate.value!="")
		{
			dteDate = new Date();
			arrDate = strDate.split("/");
			dteDate.setFullYear(arrDate[2],arrDate[1]-1,arrDate[0]);
		}

		return dteDate;
}
//-->