/*
chkPwdFmt: 驗證輸入密碼是否8~12碼, 英文大小寫&含數字
chkDateFmt: 驗證輸入日期是否正確
chkStringFmt: 驗證輸入字串是否正確
chkNumberFmt: 驗證輸入數字是否正確
chkEmailFmt: 驗證輸入Email是否正確
chkIdNo : 驗證輸入身份證號是否正確
checkTB : 驗證輸入統一編號是否正確
*/

//驗證輸入密碼是否8~12碼, 英文大小寫&含數字
function chkPwdFmt(str){
//alert(str.length);
//	if ((! isNaN(str))) {
		if ( str.length >= 8 && str.length <= 12) {
		
			return true;
		}
		else return false;
	/*}	
	else return false;*/
}

//檢查Email格式是否正確
function chkEmailFmt (str) { 
	var isValid = false;
	var ndxAt = 0;
	var ndxDot = 0;
	if (str.length>0) {
		ndxAt  = str.indexOf("@");
		ndxDot = str.indexOf(".");
		if (!(ndxAt < 0) && !(ndxDot < 0)) isValid = true;
	}
	return isValid;
}


//檢查字串格式是否正確
function chkStringFmt(str){
	if (str.indexOf("'") == -1 ) return true;
	else return false;
}

//檢查數字格式是否正確
function chkNumberFmt(str){
	if ((! isNaN(str))) return true;
	else return false;
}

//檢查日期格式是否正確
function chkDateFmt(str){
	//var str=document.all(fieldName).value;
	if ( str.length == 8 && (! isNaN(str)) ) {
		//判斷長度為8 & 全都為數字format, ex:yyyymmdd
		var Y=str.substring(0,4);
		var M=str.substring(4,6);
		var D=str.substring(6,8);
	} else if ( str.length == 10 ) {
		//判斷長度為10 & 不可以有 ' 符號
		var Y=str.substring(0,4);
		var M=str.substring(5,7);
		var D=str.substring(8,10);
	} else {
   		//格式不正確 //alert("日期不正確");
   		return false;
	}

	if (!isNaN(Y) && !isNaN(M) && !isNaN(D)) {   
		if((Y<1900)||(M<1)||(D<1)||(Y>2100)||(M>12)||(D>31)){
			return false;
		}else if((M==4)||(M==6)||(M==9)||(M==11)){
			if(D>30) return false;   //4, 6, 9, 11月有30天
			else return true;
		}else if((M==2)&&(((Y%4==0)&&(Y%100!=0))||(Y%400==0))){
			if(D>29) return false;
			else return true;
		}else if(M==2){
			if(D>28) return false;
			else return true;
		}else return true;      
   	}
}      
//判斷是否為空字串
function isEmptyString(str) {
	var isEmpty = true;
  if (str != null && str != "" ) {	
		for (var i = 0; i < str.length; i++) {
				var temp = str.charAt(i);
				if (temp != '\n' && temp != '\t' && temp != ' ' && temp != '\r') {
					isEmpty = false;
					break;
				}
		}
	}      
	return isEmpty;
}

//檢查日期格式是否正確
function chkTimeFmt(str){
	//var str=document.all(fieldName).value;
	if ( str.length == 8 ) {
		//判斷長度為10 & 不可以有 ' 符號
		var H=str.substring(0,2);
		var M=str.substring(3,5);
		var S=str.substring(6,8);
	} else {
   		//格式不正確 //alert("時間不正確");
   		return false;
	}

	if (!isNaN(H) && !isNaN(M) && !isNaN(S)) {   
		if((H<0)||(M<0)||(S<0)||(H>23)||(M>59)||(S>59)){
			return false;
		}else return true;      
  }
} 
//讓輸入框內容全部選取
function makeInputSelected(obj) {			
	obj.select();
}

//================檢查身分證字號================
function chkIdNo(str){
   //var myid = document.all(str).value;
   //myid = myid.toUpperCase();            //先將 ID 轉成大寫
   if(str != "") {
   	
   		if(str.length!=10){           //身分證字號超過10個字
      		//alert("【"+msg+"】輸入錯誤!");  document.all(str).focus(); return false;
      		//alert("run1");
      		return false;
   		}else if(str.charAt(0)<"A" || str.charAt(0)> "Z"){    //身分證字號第一碼必須是英文字母
      		//alert("【"+msg+"】輸入錯誤!");  document.all(str).focus(); return false;
      		//alert("run2");
      		return false;
   		}else if(str.charAt(1)!="1" && str.charAt(1)!="2"){   //身分證字號第二碼非 1 或 2
      		//alert("【"+msg+"】輸入錯誤!");  document.all(str).focus(); return false;
      		//alert("run3");
      		return false;
   		}else if(chkAcctFmt(str.substring(1,10))){                  //身分證字號第二到十碼非數字
      		//alert("【"+msg+"】輸入錯誤!");  document.all(str).focus(); return false;
      		//alert("run4");
      		return false;
   		}
   		var alph = new Array("A","B","C","D","E","F","G","H","J","K","L","M","N","P","Q","R","S","T","U","V","X","Y","W","Z","I","O");
   		var num  = new Array("10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35");
   		var n=0;
   		for(i=0;i<alph.length;i++){
     		if(str.charAt(0)==alph[i])
        		n=i;
   		}

   		var tot1 = parseFloat(num[n].charAt(0)) + (parseFloat(num[n].charAt(1)) * 9);
	
   		var tot2 = 0;
   		for(i=1;i<str.length-1;i++){
	    	tot2 = tot2 + parseFloat(str.charAt(i))*(9-i);
		}
		
   		var tot3 = parseFloat(str.charAt(9));
		
   		var tot4 = tot1 + tot2 + tot3;
   		//alert(tot4);
		
   		if((tot4 % 10)!=0){            //身分證字號有問題
      		//alert("【"+msg+"】輸入錯誤!");  document.all(str).focus(); return false;
      		//alert("run5");
      		return false;
   		}
   	}
   return true;
}




//================檢查統一編號================
function checkTB(NO)
{
	var SUM = 0;
	var cx = new Array;
	cx[0] = 1;
	cx[1] = 2;
	cx[2] = 1;
	cx[3] = 2;
	cx[4] = 1;
	cx[5] = 2;
	cx[6] = 4;
	cx[7] = 1;

	if (NO.length != 8) 
	{
		//alert("統編錯誤，要有 8 個數字");
		return false;
	}
		var cnum = NO.split("");
		for (i=0; i<=7; i++) 
		{
			if (NO.charCodeAt() < 48 || NO.charCodeAt() > 57) 
			{
				//alert("統編錯誤，要有 8 個 0-9 數字組合");						
				return false;
			}					
			SUM += checkTB_cc(cnum[i] * cx[i]);
		}							
		if (SUM % 10 != 0)
		{					
			return false;
		}
		else
		{
			if ((cnum[6] == 7 && (SUM + 1) % 10 != 0)) //公式驗證失敗
			{
				return false;
			}
			else
			{
				return true;
			}
		}
}

function checkTB_cc(n){
if (n > 9) {
	var s = n + "";
	n1 = s.substring(0,1) * 1;
	n2 = s.substring(1,2) * 1;
	n = n1 + n2;
}
return n;
}
//================檢查統一編號================	








//===================傳回指定兩個Date值之間,時間間隔===================
/****************************************************************************************\
傳入值
	DT1  起始日,傳入值限制為	yyyymmdd
	DT2  終止日,傳入值限制為	yyyymmdd
	interval  比較類型  s,n,h,d,w,m,y
	
傳出值
	差距的數值
	
月差只比較月份,請注意:例如 2006/01/01 跟 2006/02/21 這樣會回傳1 ; 因為差一個月
\****************************************************************************************/

function chk_Date_Diff(DT1,DT2,interval)
{
	var Y=DT1.substring(0,4) + "/";
	var M=DT1.substring(4,6) + "/";
	var D=DT1.substring(6,8);
	var sDT = new Date( Y + M + D);	
	
	var Y=DT2.substring(0,4) + "/";;
	var M=DT2.substring(4,6) + "/";
	var D=DT2.substring(6,8);	
	
	var eDT = new Date(Y + M + D);
	
    switch (interval) 
    {
      //計算秒差
      case "s":return sDT.dateDiff("s",eDT);
      //計算分差
      case "n":return sDT.dateDiff("n",eDT);
      //計算時差
      case "h":return sDT.dateDiff("h",eDT);
      //計算日差
      case "d":return sDT.dateDiff("d",eDT);
      //計算週差
      case "w":return sDT.dateDiff("w",eDT);
      //計算月差
      case "m":return sDT.dateDiff("m",eDT);  //月差只比較月份,請注意:例如 2006/01/01 跟 2006/02/01 這樣會回傳1 ; 因為差一個月
      //計算年差
      case "y":return sDT.dateDiff("y",eDT);
      //輸入有誤
      default:return 0;
    }
    	
	//document.writeln("秒差 : "+sDT.dateDiff("s",eDT)+"<br>");
	//document.writeln("分差 : "+sDT.dateDiff("n",eDT)+"<br>");
	//document.writeln("時差 : "+sDT.dateDiff("h",eDT)+"<br>");
	//document.writeln("日差 : "+sDT.dateDiff("d",eDT)+"<br>");
	//document.writeln("週差 : "+sDT.dateDiff("w",eDT)+"<br>");
	//document.writeln("月差 : "+sDT.dateDiff("m",eDT)+"<br>");
	//document.writeln("年差 : "+sDT.dateDiff("y",eDT)+"<br>");
}

 Date.prototype.dateDiff = function(interval,objDate)
 {
    //若參數不足或 objDate 不是日期物件則回傳 undefined
    if(arguments.length<2||objDate.constructor!=Date) return undefined;
    switch (interval) {
      //計算秒差
      case "s":return parseInt((objDate-this)/1000);
      //計算分差
      case "n":return parseInt((objDate-this)/60000);
      //計算時差
      case "h":return parseInt((objDate-this)/3600000);
      //計算日差
      case "d":return parseInt((objDate-this)/86400000);
      //計算週差
      case "w":return parseInt((objDate-this)/(86400000*7));
      //計算月差
      case "m":return (objDate.getMonth()+1)+((objDate.getFullYear()-this.getFullYear())*12)-(this.getMonth()+1);
      //計算年差
      case "y":return objDate.getFullYear()-this.getFullYear();
      //輸入有誤
      default:return undefined;
    }
  }
//===================傳回指定兩個Date值之間,時間間隔===================

var win_note;
var cnt = 0;
var ChildWin = new Array(1);
function winPopClo()
{
    //if (window.event.clientX < 0 && window.event.clientY < 0)
	//{	
	//	alert("Window is closed.");
	//}
	//else
	//{
	//	alert("F5");
	//}

	if(win_note!= null && win_note.open )
	{
		win_note.close();
	}

	for(i=0;i<cnt;i++)
	{
		if(ChildWin[i])
		{
			ChildWin[i].close();
		}
	}
}

// 日曆視窗
function showCalendar(strFormName, strObjName)
{
	//window.showModalDialog("m_calendar.aspx?pObjForm="+strFormName+"&pObjID="+strObjName+"","m_calendar","dialogLeft=100px;dialogTop=100px;dialogHeight=350px;dialogWidth=400px");
	window.open("m_calendar.aspx?pObjForm="+strFormName+"&pObjID="+strObjName+"","m_calendar","status=no, top=300, left=500,width=250px,height=210px,scrollbars=no,resizable=no");
}

function FP_swapImg() {//v1.0
 var doc=document,args=arguments,elm,n; doc.$imgSwaps=new Array(); for(n=2; n<args.length;
 n+=2) { elm=FP_getObjectByID(args[n]); if(elm) { doc.$imgSwaps[doc.$imgSwaps.length]=elm;
 elm.$src=elm.src; elm.src=args[n+1]; } }
}

function FP_preloadImgs() {//v1.0
 var d=document,a=arguments; if(!d.FP_imgs) d.FP_imgs=new Array();
 for(var i=0; i<a.length; i++) { d.FP_imgs[i]=new Image; d.FP_imgs[i].src=a[i]; }
}

function FP_getObjectByID(id,o) {//v1.0
 var c,el,els,f,m,n; if(!o)o=document; if(o.getElementById) el=o.getElementById(id);
 else if(o.layers) c=o.layers; else if(o.all) el=o.all[id]; if(el) return el;
 if(o.id==id || o.name==id) return o; if(o.childNodes) c=o.childNodes; if(c)
 for(n=0; n<c.length; n++) { el=FP_getObjectByID(id,c[n]); if(el) return el; }
 f=o.forms; if(f) for(n=0; n<f.length; n++) { els=f[n].elements;
 for(m=0; m<els.length; m++){ el=FP_getObjectByID(id,els[n]); if(el) return el; } }
 return null;
}