<!-- 

var expDays = 30;
var exp = new Date(); 
exp.setTime(exp.getTime() + (expDays*24*60*60*1000));

function GetCookie (name) {  
	var arg = name + "=";  
	var alen = arg.length;  
	var clen = document.cookie.length;  
	var i = 0;  
	while (i < clen) {    
	var j = i + alen;    
	if (document.cookie.substring(i, j) == arg)      
		return getCookieVal (j);    
		i = document.cookie.indexOf(" ", i) + 1;    
		if (i == 0) break;   
	}  
	return null;
}
function SetCookie (name, value) {  
	var argv = SetCookie.arguments;  
	var argc = SetCookie.arguments.length;  
	var expires = (argc > 2) ? argv[2] : null;  
	var path = (argc > 3) ? argv[3] : null;  
	var domain = (argc > 4) ? argv[4] : null;  
	var secure = (argc > 5) ? argv[5] : false;  
	document.cookie = name + "=" + escape (value) + 
	((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + 
	((path == null) ? "" : ("; path=" + path)) +  
	((domain == null) ? "" : ("; domain=" + domain)) +    
	((secure == true) ? "; secure" : "");
}
function DeleteCookie (name) {  
	var exp = new Date();  
	exp.setTime (exp.getTime() - 1);  
	// This cookie is history  
	var cval = GetCookie (name);  
	document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}
function getCookieVal(offset) {
  var endstr = document.cookie.indexOf (";", offset);
  if (endstr == -1)
    endstr = document.cookie.length;
  return unescape(document.cookie.substring(offset, endstr));
}

if (window.name == "")
{
	window.name = "root"
}

if (document.layers)
  window.setResizable(true);

function GetAge(day, month, year) {
	
	if (day != '' || month != '' || year != '') {
		today = new Date();
		curyear = today.getFullYear();
		curmonth = today.getMonth()+1;
		curdate = today.getDate();			
		age = curyear - year;
		if ((month > curmonth) || ((month == curmonth) && (curdate < day)))
			age = age - 1;
			
		return age;					
	};
};
//
// Purpose :	Find out whether the inputted year is a leap year
// Return :	true/false
// Parameter :	The inputted year
//
function fnIsLeapYear (year)
{
	return (year%4 == 0 && (year%100 != 0 || year%400 == 0));
}

//
// Purpose :	Validate the date
// Return :	true/false
// Parameter :	year, month, day
//
function fnIsValidDate (year, month, day)
{
	var iMonth = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	var iMonthLY = new Array(31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	if (!fnIsMonth(month))
		 return false;
	if (isNaN(day))
		return false;
    	if ( (fnIsLeapYear(year) && (day > iMonthLY[month-1] || day < 1)) ||
             (!fnIsLeapYear(year) && (day > iMonth[month-1] || day < 1)) )
		return false;
	else
		return true;
}

//
// Purpose :	Validate the time
// Return :	true/false
// Parameter :	hr, min, sec
//
function fnIsValidTime (hr, min, sec)
{
	if (!fnIsHour(hr))	{ return "invalid hour !";	}
	if (!fnIsMin(min))	{ return "invalid minute !";}
	if (!fnIsSec(sec))	{	return "invalid second !";}      
        
	if ((hr=="" || min=="" || sec=="") && (hr!="" || min!="" || sec!="")) {
		return "Enter Hour, Minute, Second correspondingly"
	};
	
	return true;
	
}

//
// Purpose :	Validate the year
// Return :	true/false
// Parameter :	Inputted year
//
function fnIsYear ( year )
{
	return (year > 1970 && year < 2999);
}

//
// Purpose :	Validate the month
// Return  :    true/false
// Parameter :	Inputted month
//
function fnIsMonth ( month )
{
	return (month >= 1 && month <= 12);
}

//
// Purpose :  	Validate the hour
// Return  :	true/false
// Parameter :	Inputted hour
//
function fnIsHour ( hour )
{	
	return (hour >= 0 && hour < 24)
}

//
// Purpose : 	Validate the minute
// Return :	true/false
// Parameter :	Inputted minute
//
function fnIsMin ( minute )
{
	return (minute >= 0 && minute <= 59);
}

//
// Purpose :	Validate the second
// Return :	true/false
// Parameter :	Inputted second
//
function fnIsSec ( second )
{
	return (second >= 0 && second <= 59);
}

//
// Purpose :	Validate the number
// Return :	true/false
// Parameter :	Inputted number
//
function fnIsNumber ( number )
{
	return (!isNaN(number));
}

//
// Purpose :	Validate the integer
// Return :	true/false
// Parameter :	Inputted second
//
function fnIsInteger ( intvalue )
{
	if (intvalue == parseInt(intvalue))
		return true;
	else
		return false;
}

function trim(string)
{
        for (i = string.length; i > 0; i --)
        {
                if (string.substring(i-1, i) != " ")
                        break;
        }
        for (j = 0; j < i; j ++)
        {
                if (string.substring(j, j+1) != " ")
                {
                        break;
                }
        }
        return string.substring(j,i);
}

function zeropad(string, len)
{
	sbuf = string;
	
	for (i = string.length; i < parseInt(len); i ++)
	{
		sbuf = "0" + sbuf;
	}
	return sbuf;
}

function fnIsNumString(cardno)
{
	var i;
	for (i=0;i<cardno.length;i++)
		if (isNaN(cardno.charAt(i)) || cardno.charAt(i) == " ")
			return(false);			
	
	return(true);		
}	


function checkHkid(hkid_prefix,hkid_digits,hkid_check) {
			
			var i, j;
			// check english characters for hkid_prefix
			if (hkid_prefix == "") {					
					alert("HKID prefix cannot be blank!");
					return(1);
			}		
	
			for (j=0;j<hkid_prefix.length;j++) {
				prefixChar = hkid_prefix.charAt(j);		
				if (prefixChar.charCodeAt(0) < 65	|| hkid_prefix.charCodeAt(0) > 90) {
					alert("HKID prefix can only be capital letter!");					
					return(1);
				};		
			};
			
			// check digits for hkid_digits
			if (hkid_digits.length != 6) {
				alert("HKID digits cannot be less than 6 digits!");				
				return(2);
			};
			
			 
			if (!fnIsNumString(hkid_digits)) {
				alert("Please input 6 digits!");
				return(2);			
			};
			
			
			// check check digit character
			if (hkid_check.length != 1) {
				alert("Please input HKID check digit!");				
				return(3);
			};
			
			/*
			if ((hkid_check != "a" && hkid_check != "A") || !fnIsNumString(hkid_check)) {
				alert("Check digit!");				
				return;			
			};
			*/	
										
			idpre=hkid_prefix.charCodeAt(0);
			stringA='A';
			acode=stringA.charCodeAt(0);
			indexcode=idpre-acode+1;
			total=indexcode*8;
			for (i=0;i<6;i++){
			 	dcodes=hkid_digits.charAt(i);
				total=total+parseInt(dcodes)*(7-i);
			};
			
			if (hkid_check=="A" || hkid_check=="a")
				total=total+10;
			else {
				if (!isNaN(hkid_check))
				total=total+parseInt(hkid_check);
			}
	
			if ((total%11)!=0){
				alert("Invalid value of HKID, please input again!");		
				return(2);
			}
			
	return(0);
	
}

function trim(str) {
	
	return str.replace(/^\s*(\S*)\s*$/,"$1")
}	

function fnIsDecimal(numValue, beforeDec, afterDec) {
	numValue = stringReplace(numValue,",","");
   	if (isNaN(numValue) == true) 
		return false;
        else {
        	maxnumber = Math.pow(10,beforeDec) - Math.pow(10,afterDec * -1);
	        if (numValue > maxnumber) 
	        	return false;      
	        if (numValue * 1 <= 0) 
			return false;
	        if (numValue.indexOf(".") >= 0) // contains "."
	        {
   	                if (eval("/[.]{1}[\\d]{0,"+afterDec+"}$/.test(numValue)")==false)
				return false;
			else 
				return true;
		}
		else 
			return true;
	}
		
}

function stringReplace(originalString,findText,replaceText)
{
  var pos=0;
  var len = findText.length;
  pos = originalString.indexOf(findText);
  while(pos != -1)
  {
    preString = originalString.substring(0,pos);
    postString = originalString.substring(pos+len,originalString.length);
    originalString = preString + replaceText + postString;
    pos = originalString.indexOf(findText,pos);
  }
  return originalString;
}

function nochange(thisformObj, thisObj)
{
	if (thisObj.type == "checkbox")
	{
		thisObj.checked = !thisObj.checked;	
	}
	
	else
	{
		thisObjName = thisObj.name;
		for (i=0 ; i<thisformObj.elements[thisObjName].length; i++)
		{
			thisformObj.elements[thisObjName][i].checked = thisformObj.elements[thisObjName][i].defaultChecked;
		}
	}
	
	return;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
	
function resetform(thisObj) {
	if (confirm("Are you sure to reset all fields?")) {
		thisObj.reset();
	};
};

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload(true);
}

function MM_showHideLayers() { //v3.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
    obj.visibility=v; }
}

function MM_nbGroup(event, grpName) { //v3.0
  var i,img,nbArr,args=MM_nbGroup.arguments;
  if (event == "init" && args.length > 2) {
    if ((img = MM_findObj(args[2])) != null && !img.MM_init) {
      img.MM_init = true; img.MM_up = args[3]; img.MM_dn = img.src;
      if ((nbArr = document[grpName]) == null) nbArr = document[grpName] = new Array();
      nbArr[nbArr.length] = img;
      for (i=4; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
        if (!img.MM_up) img.MM_up = img.src;
        img.src = img.MM_dn = args[i+1];
        nbArr[nbArr.length] = img;
    } }
  } else if (event == "over") {
    document.MM_nbOver = nbArr = new Array();
    for (i=1; i < args.length-1; i+=3) if ((img = MM_findObj(args[i])) != null) {
      if (!img.MM_up) img.MM_up = img.src;
      img.src = (img.MM_dn && args[i+2]) ? args[i+2] : args[i+1];
      nbArr[nbArr.length] = img;
    }
  } else if (event == "out" ) {
    for (i=0; i < document.MM_nbOver.length; i++) {
      img = document.MM_nbOver[i]; img.src = (img.MM_dn) ? img.MM_dn : img.MM_up; }
  } else if (event == "down") {
    if ((nbArr = document[grpName]) != null)
      for (i=0; i < nbArr.length; i++) { img=nbArr[i]; img.src = img.MM_up; img.MM_dn = 0; }
    document[grpName] = nbArr = new Array();
    for (i=2; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
      if (!img.MM_up) img.MM_up = img.src;
      img.src = img.MM_dn = args[i+1];
      nbArr[nbArr.length] = img;
  } }
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
	// - if left and top is not defined, it is preset as left=1,top=1
	if (!/left=(\d*)/.test(features))
		features = features + ",left=1";
	if (!/top=(\d*)/.test(features))
		features = features + ",top=1";
	// - End
  window.open(theURL,winName,features);
}

function lessthan2years(day, month, year) {
	
	if (day != '' || month != '' || year != '') {
		today = new Date();
		curyear = today.getFullYear();
		curmonth = today.getMonth()+1;
		curdate = today.getDate();			
		
		diffyear = curyear - year;
		diffmonth = curmonth - month;
		diffdate = curdate - day;
		
//		alert(diffyear);
//		alert(diffmonth);
//		alert(diffdate);
		
		if (diffyear < 2)
			return true;
		else if ((diffyear == 2) && (diffmonth < 0))
			return true;
		else if ((diffyear == 2) && (diffmonth == 0) && (diffdate <= 0))
			return true;
		else
			return false;
		
	};
};

//----------------------------------------------------------------------
//
// Start of "Disabling Right Mouse Button"
//
//----------------------------------------------------------------------
//*** basic.js
var isNN = (navigator.appName.indexOf('Netscape') != -1);
var isIE = (navigator.appName.indexOf('Microsoft') != -1);
var isEnglishPage = (document.location.href.indexOf("/eng/") >= 0)
var isChinesePage = (document.location.href.indexOf("/b5/") >= 0)

//Capture right mouse click
/*function RightClick(e) {
  if (isNN && e.which == 3) {
    if (isChinesePage)
    {
    	alert('對不起，滑鼠右鍵之功能不能使用。');
    }
    else
    {
	alert('Sorry, the function of the right mouse button is disabled. ');
    }
    return false;
  }
  else if (isIE) {
    e = window.event;
    if (e.button == 2) {
      e.cancelBubble = true;
      if (isChinesePage)
      {
        alert('對不起，滑鼠右鍵之功能不能使用。');
      }
      else
      {
        alert('Sorry, the function of the right mouse button is disabled. ');
      }
      return false;
    }
  }
  return true;
}
//Register event handler for window, document, links, images, forms
if (document.layers) { document.captureEvents(Event.MOUSEDOWN); }

window.onmousedown = RightClick;
document.onmousedown = RightClick;
for (var i = 0; i < document.links.length; i++) document.links[i].onmousedown = RightClick;
for (var i = 0; i < document.images.length; i++) document.images[i].onmousedown = RightClick;
for (var i = 0; i < document.forms.length; i++) {
  document.forms[i].onmousedown = RightClick;
  for (var j = 0; j <document.forms[i].elements.length; j++)
    document.forms[i].elements[j].onmousedown = RightClick;
}
*/
//----------------------------------------------------------------------
//
// End of "Disabling Right Mouse Button"
//
//----------------------------------------------------------------------


function returnAge(birthday,birthmonth,birthyear,currentday,currentmonth,currentyear) {
//RETURN AGE , IF INVALID INPUT, RETURN ""
	var ap;
	/*dd = document.form1.day.value;
	mm = document.form1.month.value;
	yy = document.form1.year.value;
	*/
	
	dd = birthday;
	mm = birthmonth;
	yy = birthyear;
	
	gdate=currentday;
	gmonth=currentmonth;
	gyear=currentyear;

	
	main="valid";
	if ((gmonth < 1) || (gmonth > 12) || (gdate < 1) || (gdate > 31) || (gyear < 1) ||(gmonth == "") || (gdate == "") || (gyear == ""))
		return "0";		
	if ((mm < 1) || (mm > 12) || (dd < 1) || (dd > 31) || (yy < 1) ||(mm == "") || (dd == "") || (yy == ""))
		return "0";	
	
	if (((mm == 4) || (mm == 6) || (mm == 9) || (mm == 11)) && (dd > 30))
		return "0";	
	
	if (mm == 2) {
			if (dd > 29)
				return "0";
			else if((dd > 28) && (!lyear(yy)))
				return "0";
		}
	
	if((yy > 9999)||(yy < 0))
			return "0";
		
			/*days = new Date();
			gdate = days.getDate();
			gmonth = days.getMonth();
			gyear = days.getYear();
			
			//gdate=10;
			//gmonth=11;
			//gyear=2005;
			
			//document.form1.M1.value=gmonth;
			//document.form1.D1.value=gdate;
			//document.form1.Y1.value=gyear;

*/
			
			age = gyear - yy;
			if(parseInt(mm) < parseInt(gmonth)) {
					age = age;
					//document.form1.age1.value="small";
			}
			else if(parseInt(mm) > parseInt(gmonth)) {
					age = age - 1;
					//document.form1.age1.value="larger";
			}
			else
			  {
			     if((parseInt(mm) == parseInt(gmonth)) && (parseInt(dd) <= parseInt(gdate))) {
				    age = age;
					//document.form1.age1.value="equal and small";
				}					
				 else
				 {
					age = age - 1;
					//document.form1.age1.value="equal and larger";
			    	}
			  
			  }
	
		
	return age;		
		//document.form1.age.value="  You are " + age+ " years old   &  ";
}
function lyear(a) {
if(((a % 4 == 0) && (a % 100 != 0)) || (a % 400 == 0)) return true;
else return false;
}


//-->