//---------------------------------------------------------------------------------------------------------
//常用JavaScript
//
//---------------------------------------------------------------------------------------------------------

//---------------------------------------------------------------------------------------------------------
//輸入檢核: 只可輸入數字0-9,-,. (負號,小數點)
//	  傳出: 否則return .F.
function JHshNumberText()
{
	if ( !(((window.event.keyCode >= 48) && (window.event.keyCode <= 57)) 
	|| (window.event.keyCode == 13) || (window.event.keyCode == 46) 
	|| (window.event.keyCode == 45)))
	{
		window.event.keyCode = 0 ;
	}
} 



//---------------------------------------------------------------------------------------------------------
//輸入檢核: 只可輸入數字0-9,-,. (負號,小數點)
//	  傳出: 否則return .F.
function InputNum(){
	if (!(event.keyCode >= 45 && event.keyCode <= 57 && event.keyCode != 47)) event.returnValue = false;
}


//---------------------------------------------------------------------------------------------------------
// 檢核: 日期格式為 char(8) 是否符合輸入格式 
// 傳入: obj 
//		 可省略/0/2- 省略:可不輸入, 但Err時立即alert出來 0:必須輸入回傳訊息, 2:可不輸入回傳訊息
//       array物件的index- 可省略
// 傳出: 錯誤訊息字串
// 範例: 一般 obj 物件後加 onblur="Fun_CheckDates(this)"
// 　　  檢核fun. 則 errmsg=errmsg + Fun_CheckDates(form.sVi50_date,0); 0必須輸入 2-可不輸入
//---------------------------------------------------------------------------------------------------------

function Fun_CheckDates(obj,show,wIndex)
{
    var tYear, tMm, tDd;    
    var tobj="", ttitle="";
    var tFlag=0;	//1 潤年
    var ErrFlag=0;	//非0 則不符
    var errmsg="";    
    var tSess_Year;
   
   tSess_Year =(new Date()).getFullYear();
    
    if (wIndex >= 0)
	{	if (obj[wIndex].value != null) 
		{
			if (obj[wIndex].value.length ==4) obj[wIndex].value = tSess_Year + obj[wIndex].value ;
			tobj = obj[wIndex].value ;			
			ttitle = "第 " + (parseInt(wIndex,10) + 1)  + " 行:" + obj[wIndex].title;
		}
	}	
	else   
	{
		if (obj.value.length ==4) obj.value = tSess_Year + obj.value ;
		tobj = obj.value;
		ttitle = obj.title;	
	}
	
    if (tobj == "") ErrFlag=9;		//沒輸入不check
    
    if (isNaN(tobj))						ErrFlag=1;
	if (ErrFlag == 0 && tobj.length != 8 )	ErrFlag=2; 
	if (ErrFlag == 0)
	{	tYear = parseInt( tobj.substr(0,4),10 );
		tMm	  = parseInt( tobj.substr(4,2),10 );
		tDd   = parseInt( tobj.substr(6,2),10 );

		if (tYear < 1 || tMm < 1 || tMm > 12 || tDd < 1 || tDd > 31) 
		{	ErrFlag=3;}
		else
		{	
			if (tYear % 4 == 0)	//潤年
			{
				tFlag = 1;
				if (tYear % 100 == 0 )
					if (tYear % 400 != 0) tFlag = 0;
			}
			switch (tMm)
			{
				case 2: if ( (tFlag == 1 && tDd > 29) || (tFlag == 0 && tDd > 28) ) ErrFlag = 4; break;
				case 4:
				case 6:
				case 9:
				case 11:if (tDd > 30) ErrFlag = 5; break;
			}		
		}	
	}
		
	if (ErrFlag == 9)				//沒輸入 
	{	if (show == 0)
		{	
			if (ttitle=="") 
			{	errmsg = "請輸入日期\n";}
			else 
			{	errmsg = ttitle + "\n";}
		}
	}
	else
		if (ErrFlag != 0)			//有錯 且 非不檢核
		{	if (ttitle=="") 
			{	errmsg = "日期格式:YYYYMMDD -年4碼西曆年\n";}
			else 
			{	errmsg = ttitle + "\n";}
		}

	if (typeof(show)  != 'undefined') 
	{	return errmsg;}
	else
	{	if (errmsg != "" )
			alert(errmsg);}
		
}


//---------------------------------------------------------------------------------------------------------
// 檢核: 時間格式為 char(5) 是否符合輸入格式 
// 傳入: obj [,array物件的index] 
// 傳出: 輸入HHMM 回傳 HH:MM

function Fun_CheckCTime(obj,wIndex)
{	
    if (wIndex >= 0)
    {
		if (obj[wIndex].value.length == 4) obj[wIndex].value = obj[wIndex].value.substr(0,2) + ':' + obj[wIndex].value.substr(2,2) ;
	}	
	else
	{
		if (obj.value.length == 4) obj.value = obj.value.substr(0,2) + ':' + obj.value.substr(2,2) ;
	}		
}


//---------------------------------------------------------------------------------------------------------
// 身份証檢查副程式1
function Fun_idCheck(id)
{   
	var fResult=false;
	var value = 0;
	var sId=id;
   
	if(sId.length==10)
	{
		if((sId.charAt(0)=='A') || (sId.charAt(0)=='a')) value=10
		else if((sId.charAt(0)=='B') || (sId.charAt(0)=='b')) value=11
		else if((sId.charAt(0)=='C') || (sId.charAt(0)=='c')) value=12
		else if((sId.charAt(0)=='D') || (sId.charAt(0)=='d')) value=13
		else if((sId.charAt(0)=='E') || (sId.charAt(0)=='e')) value=14
		else if((sId.charAt(0)=='F') || (sId.charAt(0)=='f')) value=15
		else if((sId.charAt(0)=='G') || (sId.charAt(0)=='g')) value=16
		else if((sId.charAt(0)=='H') || (sId.charAt(0)=='h')) value=17
		else if((sId.charAt(0)=='J') || (sId.charAt(0)=='j')) value=18
		else if((sId.charAt(0)=='K') || (sId.charAt(0)=='k')) value=19
		else if((sId.charAt(0)=='L') || (sId.charAt(0)=='l')) value=20
		else if((sId.charAt(0)=='M') || (sId.charAt(0)=='m')) value=21
		else if((sId.charAt(0)=='N') || (sId.charAt(0)=='n')) value=22
		else if((sId.charAt(0)=='P') || (sId.charAt(0)=='p')) value=23
		else if((sId.charAt(0)=='Q') || (sId.charAt(0)=='q')) value=24
		else if((sId.charAt(0)=='R') || (sId.charAt(0)=='r')) value=25
		else if((sId.charAt(0)=='S') || (sId.charAt(0)=='s')) value=26
		else if((sId.charAt(0)=='T') || (sId.charAt(0)=='t')) value=27
		else if((sId.charAt(0)=='U') || (sId.charAt(0)=='u')) value=28
		else if((sId.charAt(0)=='V') || (sId.charAt(0)=='v')) value=29
		else if((sId.charAt(0)=='X') || (sId.charAt(0)=='x')) value=30
		else if((sId.charAt(0)=='Y') || (sId.charAt(0)=='y')) value=31
		else if((sId.charAt(0)=='W') || (sId.charAt(0)=='w')) value=32
		else if((sId.charAt(0)=='Z') || (sId.charAt(0)=='z')) value=33
		else if((sId.charAt(0)=='I') || (sId.charAt(0)=='i')) value=34
		else if((sId.charAt(0)=='O') || (sId.charAt(0)=='o')) value=35
		
		if(value > 0)
		{
			value = Math.floor(value/10) + (value%10) * 9 +
					parseInt(sId.charAt(1)) * 8 +
					parseInt(sId.charAt(2)) * 7 +
					parseInt(sId.charAt(3)) * 6 + 
					parseInt(sId.charAt(4)) * 5 +
					parseInt(sId.charAt(5)) * 4 +
					parseInt(sId.charAt(6)) * 3 +
					parseInt(sId.charAt(7)) * 2 +
					parseInt(sId.charAt(8))		+	parseInt(sId.charAt(9)) ;     
			value = value % 10 ;
			if(value==0) fResult = true ;
		}    
	}  
    return fResult ;
}

//---------------------------------------------------------------------------------------------------------
// 身份証檢查副程式2  ALLEN
function CreditCheck(credit)
{
	var format = /^[A-Za-z]\d{9}$/;
	if (!format.test(credit))
	{
		return false;
	}
	else 
	{
		return true;
	}
}


function openwin(url,winName,features) {

	if (typeof (features) == "undefined") 
		var hintW=window.open(url,winName);
	else	
		var hintW = window.open(url,winName,features);
		
	if (!hintW.opener) hintW.opener = self;
    if (hintW.focus != null) hintW.focus();	
}

function winopen(url,newwidth,newheight) {
	var MainWindow = window.open(url,"_blank","toolbar=0,location=0,menubar=0,scrollbars=1,width="+screen.width+",height="+screen.availHeight+",resizeable=1,status=0");
	MainWindow.resizeTo(newwidth,newheight)
}


function FunCalendar(objname,tFdate,tTop,tLeft,tTdate)
{
	if	(tTop	==	'')
		tTop	=	(screen.height - 200) / 2;
	if	(tLeft	==	'')
		tLeft	=	(screen.width - 225) / 2;
	openwin("/calendar2.asp?sObj=" + objname + "&sFdate=" + tFdate + "&sTdate=" + tTdate,"calendar","width=225,height=200,top=" + tTop + ",left=" + tLeft);
}


function CheckMail(email)
{
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email))
	{
		return true;
	}
	else
	{
		return false;
	}
}


//電話檢查

function PhoneCheck(temp)
{
	var format = /^\d[0-9]{1,2}-\d[0-9]{5,7}$/;
	if (format.test(temp))
	{
		return false;
	}
	else
	{
		return true;
	}
}



