//檢查輸入的字串是否超過指定的大小
function MaxCharLength(objName,len)
{
	var strLen;
	strLen = eval("Form1." + objName + ".value.length");
	if(strLen > len) 
		return false;
	else
		return true;
}

//檢查是否只輸入英文或數字
function FilterChar()
{	
	var sCode;
	sCode = String.fromCharCode(event.keyCode);
	if(/[0-9a-zA-Z]/.test(sCode))
		return true;
	else
		return false;		
}

function Open_Popup(url,name,width,height,left,top,scrollbars,resizable) 
{
	window.open(url,name,'width='+width+',height='+height+',left='+left+',top='+top+',scrollbars='+scrollbars+',resizable='+resizable+'');
}

//是否為正確的EMail
function IsEMail(emailStr){
	var checkTLD=1;
	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum|idv)$/;
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=emailStr.match(emailPat);
	if (matchArray==null) {
		return false;
	}
	var user=matchArray[1];
	var domain=matchArray[2];
	for (i=0; i<user.length; i++) {
		if (user.charCodeAt(i)>127) {
		return false;
		}
  	}
	for (i=0; i<domain.length; i++) {
		if (domain.charCodeAt(i)>127) {
			return false;
		}
	}
	if (user.match(userPat)==null) {
		return false;
	}

	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				return false;
			}
		}
		return emailStr;
	}
	var atomPat=new RegExp("^" + atom + "$");
	var domArr=domain.split(".");
	var len=domArr.length;
	for (i=0;i<len;i++) {
		if (domArr[i].search(atomPat)==-1) {
			return false;
		}
	}
	if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1) {
		return false;
	}
	if (len<2) {
		return false;
	}
	return true;
}

//是否為數字
function IsNumber(strValue) //欄位名稱,欄位值,欄位Label
{
	var result;
	
	if(!isNaN(strValue))
		return true;
	else
    	return false;    
}

//是否為正確的日期格式
function IsDate(datestr) 
{ 
    var year, month, day; 
    var pattern = /^\d{4}\/\d{1,2}\/\d{1,2}$/; 
    var tmpary  = new Array() 
    if (!pattern.test(datestr))  return false; 

    tmpary = datestr.split("/"); 
    year  = tmpary[0]; 
    month = tmpary[1]; 
    day   = tmpary[2]; 

    if (month<1 || month>12 || day>31 || day<1)  return false; 

    if (month == 2 && day > 28) { 
        if ((year%4==0 && year%100!=0) || (year%400==0)) { // 為閏年 
            if (day > 29) return false; 
        } 
        else {  // 非閏年 
            return false; 
        } 
    } 
    if (day>30 && ((month % 2) == Math.floor(month/8))) return false; 

    return true; 
} 

//檢查是否輸入指定的合法字元
function CheckChar(strCheckStr,numDataType){
	var strCompareStr
	
	if(numDataType==1) strCompareStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
	if(numDataType==2) strCompareStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
	if(numDataType==3) strCompareStr = "0123456789";
	if(numDataType==4) strCompareStr = "0123456789()#-";
	
	for (i = 0;  i < strCheckStr.length;  i++)
	{
		strAchar = strCheckStr.charAt(i);
		for (j = 0;  j < strCompareStr.length;  j++)
		{
			if (strAchar == strCompareStr.charAt(j))
				break;
		}
		if (j == strCompareStr.length)
		{
			return false;
		}
	}
	return true;
}

//檢查是否為正確的身份證格式
function IsUniqueID(strValue)
{
    var intAreaNo;      // As Integer ' 區域碼變數
    var intCheckSum;    // As Integer ' 檢核碼變數
    var intCount;       // As Integer ' 計數變數
    var strAreaCode;    // As String  ' 區域碼變數
    var strSN="";          // As String  ' 身份証序號
    var strTemp="ABCDEFGHJKLMNPQRSTUVXYWZIO";
        
    strID = strValue;
    strID = strID.toUpperCase(); //轉換成大寫
        
    //檢查長度
    if(strID.length < 10)
    {
		alert("身份證號欄位您只輸入" + strID.length + "個數字,\r字數不足!!");
		return false;
	}
    
     strAreaCode = strID.charAt(0); //取第一個英文字碼

    //檢查是否為英文字
    if(!CheckChar(strAreaCode,2))
    {
		alert("身份證號欄位第一個字需為英文!!");
		return false;
    } 
       
    for(intCount=1;intCount <= 9;intCount++) //取得身份証序號
    {
		strSN = strSN + strID.charAt(intCount); 
    }
    //檢查是否為數目字
    if(!CheckChar(strSN,3))
    {
		alert("身份證號欄位後9碼必須是數目字!!");
		return false; 
    }
     
    //取得英文字母對應編號  
    intAreaNo = strTemp.indexOf(strAreaCode) + 10; 
    //組合字串 
    strID_tmp = "" + intAreaNo + strSN; 
    intCheckSum = strID_tmp.charAt(0) * 1 + strID_tmp.charAt(10) * 1; //計算首尾之和
    for(i=1;i <= 9;i++) //計算第二碼至第十碼之積
    {
		intCheckSum = 0 + intCheckSum+strID_tmp.charAt(i) * (10 - i);
    
    }
    if(intCheckSum % 10 != 0)
    {	  
		alert("您所輸入的身份證字號錯誤!");
		return false;
    }  
	return true;    
}

//判斷是否有輸入資料
function IsHaveValue(objName,objValue,msg) //欄位名稱,欄位值,欄位Label
{
	if (objValue.replace(" ","").length == 0)
	{
		alert(msg);
		document.getElementById(objName).focus();
		document.getElementById(objName).select();
		return false;
	}
	return true;
}

function IsMobileNumber(strValue)
{
	if(!(/^\d{4,6}?(\-)?\d{6}$/).test(strValue))
		return false;
	else
		return true;
}

function SelectObject(objName,isSelect,msg,noAlert)
{
	if(!noAlert)
		alert(msg);
	document.getElementById(objName).focus();
	if(isSelect)	
		document.getElementById(objName).select();
}

//檢查是否是整數格式
function IsNumberChar()
{	
	var sCode;
	sCode = String.fromCharCode(event.keyCode);
	if(/[0-9]/.test(sCode))
		return true;
	else
		return false;		
}

function Trim(strValue)
{
	var findEnd;
	
	findEnd = false;
	while(!findEnd)
	{
		strValue = strValue.replace(" ","");
		if(strValue.indexOf(" ") == -1)
			findEnd = true;
	}
	return strValue;
}

//取出 post 的第一個參數值
function ReadParms()
{
	var urlString = document.location.toString();
	var value1 = ""; 
	if(urlString.indexOf("?") != -1)   
	{
		var parmString,parms;
		
		parmString = urlString.substr(urlString.indexOf("?"));
        parms = parmString.split("&");　　
        value1 = parms[0].split("=")[1];　　
        while(value1.indexOf("+") != -1)      
        {
        	position = value1.indexOf("+");          
        	value1 = value1.substr(0) + " " + value1.substr(position + 1);
        }
        value1 = unescape(value1);        
   	}
  	return value1;
 
}

function SetIframeHeight(iframeName,height)
{
	var iframe;
	var height;
		
	iframe = parent.document.all.ifmMain;
	if(iframe != null) iframe.height = height;			
}

function DoPostBack(commandName) 
{   
	var obj,form;
	obj = document.getElementById("CommandName");
	if(obj == null) 
	{
		alert("Not CommandName Object");
		return;
	}
	form = document.getElementById("Form1");
	if(form == null) 
	{
		alert("Not Form1");
		return;
	}
	obj.value = commandName;
	form.submit();
}

function ListSort(sortExpression)
{
	var obj,form;
	
	obj = document.getElementById("CommandName");
	if(obj == null) 
	{
		alert("Not CommandName Object");
		return;
	}
	obj.value = "ListSort";
	
	obj = document.getElementById("CommandValue");
	if(obj == null) 
	{
		alert("Not CommandValue Object");
		return;
	}
	obj.value = sortExpression;
	
	form = document.getElementById("Form1");
	if(form == null) 
	{
		alert("Not Form");
		return;
	}
	
	form.submit();
}

function Redirect(url)
{	
	var obj,form;
	
	obj = document.getElementById("CommandName");
	if(obj == null) 
	{
		alert("Not CommandName Object");
		return;
	}
	obj = document.getElementById("CommandValue");
	if(obj == null) 
	{
		alert("Not CommandValue Object");
		return;
	}
	form = document.getElementById("Form1");
	if(form == null) 
	{
		alert("Not Form1");
		return;
	}
	
	commandName = "Redirect";
	Form1.CommandName.value = commandName;
	Form1.CommandValue.value = url;
	DoPostBack(commandName);
}
