
function show_window( url )
{
	var d = new Date ;
	url += ( url.indexOf( "?" , 0 ) == -1 ) ? "?" : "&" ;
	url += "time=" + d.getDate() + d.getHours() + d.getMinutes() + d.getSeconds() + d.getMilliseconds() ;
	
	var width = 300 ;
	var height = 350 ;
	var left = ( window.screen.width  - width  ) / 2 ;
	var top  = ( window.screen.height - height ) / 2 ;
	
	window.open( url  , "picker" , "scrollbars=YES,width=" + width + ",height=" + height + ",top=" + top + ",left=" + left ) ;
}
function isDateString(sDate)
{ 
	var iaMonthDays = [31,28,31,30,31,30,31,31,30,31,30,31]
	var iaDate = new Array(3)
	var year, month, day
	
	if (arguments.length != 1) return false
	iaDate = sDate.toString().split("/")
	if (iaDate.length != 3) return false
	if (iaDate[1].length > 2 || iaDate[2].length > 2) return false
	
	year = parseFloat(iaDate[0])
	month = parseFloat(iaDate[1])
	day=parseFloat(iaDate[2])
	
	if (year < 1900 || year > 2100) return false
	if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) iaMonthDays[1]=29;
	if (month < 1 || month > 12) return false
	if (day < 1 || day > iaMonthDays[month - 1]) return false
	return true
} 
function isEmail(txb,ename)
{
	var txt;
	var i;
	
	txt = txb.value;
	if (txt != "")
	{
		invalidChars = " /:,;"

	        for (i=0; i<invalidChars.length; i++)
	        {
	        	badChar = invalidChars.charAt(i);
	        	
	            if (txt.indexOf(badChar,0) != -1) 
	            {
	            	txb.focus();
	                message2 = ename + "中有無效的字元";
	                return false;
	            }
	        }
	
	        atPos = txt.indexOf("@",1)
	        
	        if (atPos == -1) 
	        {
	           txb.focus();	
	            message2 = ename + "格式不正確";	
	            return false;                
	        }
	
	   		if (txt.indexOf("@",atPos+1) != -1) 
	   		{
	            txb.focus();	
	            message2 = ename + "格式不正確, 包含超過一個 '@'";	                
	            return false;
	    	}
	    	
	    	periodPos = txt.indexOf(".",atPos);
	    	
		    if (periodPos == -1) 
		    {
		      	txb.focus();		
		      	message2 = ename + "格式不正確";
			return false;
		}
	
		if (periodPos+3 > txt.length) 
		{
			txb.focus();	
			message2 = ename + "格式不正確";	        
			return false;
		}
	}
}
 function trim(str)
  {
	while (str.indexOf(" ")==0) {
		str = str.substring(1, str.length);
	}
	while ((str.length>0) && (str.indexOf(" ")==(str.length-1))) {
		str = str.substring(0, str.length-1);
	}
	return str;
  }

  var gsALP = "ABCDEFGHJKLMNPQRSTUVXYWZIO";
  var gsSEX = "12";
function CheckPID(sCheckPID)
  {
	var xMsg = "正確";
	sCheckPID = trim(sCheckPID.toUpperCase());
	var iCheckPIDLen = String(sCheckPID).length;

	var i=0;
	var xAlpNum=0;

	if (iCheckPIDLen!=10) {
		xMsg = "這個身分證字號長度不合法！";
	} else {
		var xCheck = gsALP + "0123456789";
		for(i=0;i<iCheckPIDLen;i++) {
			if (xCheck.indexOf(sCheckPID.substr(i,1))==-1) {
				xMsg = "您的【身分證字號】含有不正確的字元！";
				break;
			}
		}
	}

	if ("正確" == xMsg) {
		xAlpNum = gsALP.indexOf(sCheckPID.substr(0,1));
		if (xAlpNum==-1) {
			xMsg = "身分證字號第一個字應為英文字母！";
		} else {
			xAlpNum += 10;
			if ((sCheckPID.indexOf("1")!=1) && (sCheckPID.indexOf("2")!=1)) {
				xMsg = "您的【身分證字號】第二個字應為 1 或 2！";
			}
		}
	}

	if ("正確" == xMsg) {
		xAlpNum = (xAlpNum-xAlpNum%10)/10 + (xAlpNum%10*9);

		i=1;
		while (i<iCheckPIDLen-1) {
			xAlpNum += sCheckPID.substr(i,1) * (9-i);
			i++;
		}

		var iLastNum = sCheckPID.substr(9,1)*1;
		xAlpNum += iLastNum;

		if ((xAlpNum % 10) !=0) {
			xMsg = "您的【身分證字號】不正確！";
			for (i=0;i<10;i++) {
				var xRightAlpNum = xAlpNum - iLastNum + i;
				if ((xRightAlpNum % 10) ==0) {
					xMsg += "最後一個數應為：" + i;
				}
			}
		}
	}

	return xMsg;
  }  