﻿	//檢查單選項目是否勾選，在勾選特定項目後是否填寫欄位
	//預設自動抓取radio的名稱加上'_txt'，判定項目的值為'No'
	function RequireForRedioWithTextbox(f, objName, itemName, objValue){
		var ck = false;
		var obj = document.getElementsByName(objName);
		var val = "No";
		
		if(objValue!="") val=objValue;
		if( f[0] ) {
			for(var i=0; i<obj.length; i++){
				if( obj[i].value==val){
					var objTbx = document.getElementsByName(objName+"_txt");
					if( obj[i].checked && (objTbx[0].value!="") )
						ck = true;
				}
				else
				{
					if( obj[i].checked ) ck = true;
				}
			}
			if( !ck )	{
				alert( itemName );
				obj[0].focus();
				f[0] = false;
			}
		}
	}

	//=======================================================================	
	//  DropDownList 驗證
	//  最後更新時間：2009/01/07
	//=======================================================================
	//檢驗下拉選單是否有選擇
	function ChkDropDownList(f, objName, itemName) {
		var obj = document.getElementById(objName);
		if( obj.selectedIndex == 0 && f[0] ){
			alert( itemName );
			obj.focus();
			f[0] = false;
		}
	}
	
	//=======================================================================	
	//  RadioButton & CheckBox 驗證
	//  最後更新時間：2007/12/15
	//=======================================================================
	//檢查RadioButton和Checkbox的勾選數目
	function ChkRadioButtonAndCheckbox(objName) {
	    var objCtls = document.getElementsByTagName("input");
	    var num=0;
	    for(i=0;i<objCtls.length;i++){
	        if(objCtls[i].name.indexOf(objName)>=0){
	            if(objCtls[i].checked) num++;
	        }
	    }
	    return num;
	}
	function RequireForRedio(f, objName, itemName){
	    var SelectedNum = ChkRadioButtonAndCheckbox(objName);
		if(SelectedNum==0 && f[0]){
	        alert(itemName);
	        FocusFirstItem(objName);
			f[0] = false;
	    }
	}
	function ChkRCMaxNum(f, objName, itemName, n){
	    var SelectedNum = ChkRadioButtonAndCheckbox(objName);
	    if((SelectedNum>n && SelectedNum!=0) && f[0]){
	        alert(itemName);
	        FocusFirstItem(objName);
			f[0] = false;
	    }
	}
	function ChkRCMinNum(f, objName, itemName, n){
	    var SelectedNum = ChkRadioButtonAndCheckbox(objName);
	    if((SelectedNum<n && SelectedNum!=0) && f[0]){
	        alert(itemName);
	        FocusFirstItem(objName);
			f[0] = false;
	    }
	}
	function ChkRCFixNum(f, objName, itemName, n){
	    var SelectedNum = ChkRadioButtonAndCheckbox(objName);
	    if((SelectedNum!=n && SelectedNum!=0) && f[0]){
	        alert(itemName);
	        FocusFirstItem(objName);
			f[0] = false;
	    }
	}
	function FocusFirstItem(objName) {
	    var objCtls = document.getElementsByTagName("input");
	    var num=0;
	    for(i=0;i<objCtls.length;i++){
	        if(objCtls[i].name.indexOf(objName)>=0){
	            objCtls[i].focus();
	            break;
	        }
	    }
	}
	
	//=======================================================================
	//  Textbox驗證
	//  最後更新時間：2007/12/15
	//=======================================================================
	//  檢查欄位是否填寫
	function ReuiredForTextbox(f, objName, itemName){
		var obj = document.getElementById(objName);
		if( obj.value == "" && f[0] ){
			alert( itemName );
			obj.focus();
			f[0] = false;
		}
	}
	function FixLength(f, objName, itemName, n ){
		var obj = document.getElementById(objName);
		if( ((obj.value.length != n) && (obj.value!="")) && f[0] ){
			alert(itemName);
			obj.focus();
			f[0] = false;
		}
	}
	function MaxLength(f, objName, itemName, n ){
		var obj = document.getElementById(objName);
		if( ((obj.value.length > n) && (obj.value!="")) && f[0] ){
			alert(itemName);
			obj.focus();
			f[0] = false;
		}
	}
	function MinLength(f, objName, itemName, n ){
		var obj = document.getElementById(objName);
		if( ((obj.value.length < n) && (obj.value!="")) && f[0] ){
			alert(itemName);
			obj.focus();
			f[0] = false;
		}
	}
	function ChkEmailFormat(f, objName, itemName){
		var obj = document.getElementById(objName);
		if (( !/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/.test(obj.value) && (obj.value!="")) && f[0] )
		{
			alert(itemName);
			obj.focus();
			f[0] = false;
		}
	}
	function ChkCompareTextBox(f,objName1, objName2, itemName)
	{
	    var obj1 = document.getElementById(objName1);
	    var obj2 = document.getElementById(objName2);
	    if((obj1.value!=obj2.value) && f[0])
	    {
			alert(itemName);
			obj1.focus();
			f[0] = false;
	    }
	}
	
	//DatePicker控制項尾端加上月曆圖片
	function IniDatePicker(objName,SiteBase)
    {
	    var objTbx = document.getElementById(objName);
	    var objLnk = document.createElement("A");
	    objLnk.innerHTML = "<img id=\"" + objName + "_Img\" src='"+SiteBase+"/images/calendar.gif' border='0' align='absmiddle' />";
        objLnk.style.height = "17px";
        objLnk.style.width = "18px";
        objLnk.href = "javascript:;";
        objLnk.attachEvent( "onclick", function(){PickDate(objTbx);} );
        objTbx.parentElement.appendChild( objLnk );
    }

    //驗證所輸入的日期是否存在    
    function ChkDate(f, strDate, itemName)
    {
	    var d = new Date(strDate);
	    var ds = strDate.split('/');
	    if (d.getFullYear()==parseInt(ds[0]) && d.getMonth()==(parseInt(ds[1])-1) && d.getDate()==parseInt(ds[2]) && f[0])
	    {
			alert(itemName);
			obj[0].focus();
			f[0] = false;
	    }
    }


	//=======================================================================
	//  身份證驗證
	//  最後更新時間：2007/12/19
	//=======================================================================
 	function ChkIDNO(f, objName, itemName){
		var alphabet = "ABCDEFGHJKLMNPQRSTUVXYWZIO";
		var obj = document.getElementById(objName);
		var para = obj.value
		
	    if (f[0] && para.length>0) {
		    if( para.length != 10 ){
			   	alert(itemName);
			    obj.focus();
			    f[0] = false;
		    }else{
			    firstLetter = para.substring(0,1);
			    TempInt = alphabet.indexOf( firstLetter.toUpperCase());
			    if( TempInt != -1 ){
				    CheckSum = parseInt( TempInt / 10 ) + TempInt % 10 * 9 + 1;
				    for( i = 1 ; i < 9 ; i ++ ){
					    CheckSum += parseInt( para.substring( i, i+1 )) * ( 9 - i );
				    }
				    CheckSum = ( 10 - ( CheckSum % 10 )) % 10;
				    if( CheckSum != parseInt( para.substring( 9, 10 ))){
			   	        alert(itemName);
			            obj.focus();
					    f[0] = false;
				    }
			    }else{
			   	    alert(itemName);
			        obj.focus();
				    f[0] = false;
			    }
		    }
		}
	}

//******************  日期驗證  ********************
//共用function
	var dateFormat = 'yyyy/m/d';
	var dateSplitChar = '/';
	var dateFormatMsg='請設定正確的日期格式\n\nyyyy/m/d 2007/9/27';
	
	//驗證日期是否存在
	//驗證格式是否正確
	function ChkDate(dateStr, dateFormat, dateSplitChar)
	{
		dateStr = dateStr.toLowerCase();
		if(dateFormat.length>10 || !/^(yyyy|yy|m|d)(\/|-)(yyyy|yy|m|d)(\/|-)(yyyy|yy|m|d)$/.test(dateFormat))
		{
			alert(dateFormatMsg);
			return false;
		}
	
		strF = dateFormat.split(dateSplitChar);
		str = dateStr.split(dateSplitChar);

		var y,m,n;
		for(i=0;i<3;i++)
		{
			switch(strF[i])
			{
				case 'yyyy':
					if(str[i].length==4) y=Number(str[i]);
					else
					{
						alert("年的格式錯誤");
						return false; 
					}
					break;
				case 'yy':
					if(str[i].length==2)
					{
						y=Number(str[i]);
						if(y<30) y += 2000;
						else y += 1900;
					}
					else
					{
						alert("年的格式錯誤");
						return false; 
					}
					break;
				case 'm':
					if(str[i].length<=2)
					{
						m=Number(str[i]);
						if(m<1 || m>12)
						{
							alert("錯誤的月份");
						}
					}
					break;
				case 'd':
					if(str[i].length<=2)
					{
						d=Number(str[i]);
						if(d<1 || d>31)
						{
							alert("錯誤的日期");
						}
					}
					break;
			}
		}
		var dt = new Date(y,m,d);
		if(dt.getFullYear()!=y) { alert("錯誤的年份"); return false; }
		if(dt.getMonth()!=m) { alert("輸入的日期不存在"); return false; }
		if(dt.getDate()!=d) { alert("輸入的日期不存在"); return false; }

		return y+('0'+m).substr(('0'+m).length-2.2)+('0'+d).substr(('0'+d).length-2,2);
	}


//FOR DropDownList
	function chkDatePeriod_DDL(f, Ctl1_Y, Ctl1_M, Ctl1_d, Ctl2_Y, Ctl2_M, Ctl2_D, itemName)
	{
		if( DateCompare_DDL(Ctl1_Y, Ctl1_M, Ctl1_d, Ctl2_Y, Ctl2_M, Ctl2_D)<0 && f[0] )
		{
			Ctl1_Y.focus();
			alert(itemName);
			return false;
		}
		return f[0];
	}
	
	function DateCompare_DDL(Ctl1_Y, Ctl1_M, Ctl1_d, Ctl2_Y, Ctl2_M, Ctl2_D)
	{
		var str1=Ctl1_Y.value+('0'+m).substr(('0'+Ctl1_M.value).length-2.2)+('0'+d).substr(('0'+Ctl1_D).length-2,2);
		var str2=Ctl2_Y.value+('0'+m).substr(('0'+Ctl2_M.value).length-2.2)+('0'+d).substr(('0'+Ctl2_D).length-2,2);
		if( str1 > str2 ) return 1;
		if( str1 == str2 ) return 0;
		if( str1 < str2 ) return -1;
	}
	
//For TextBox
	function ChkDate_TBX(f, objName, itemName)
	{
		var obj = document.getElementsByName(objName);
		if( ChkDate(obj.value, dateFormat, dateSplitChar) == false )
		{
			obj[0].focus();
			f[0] = false;
		}
	}

	function ChkDatePeriod_TBX(f, startDate, endDate, itemName)
	{
		if( (DateCompare_TBX(startDate, endDate)<0) && f[0] )
		{
			startDate.focus();
			alert(itemName);
			return false;
		}
		return f[0];
	}

	function DateCompare_TBX(ctlDate1, ctlDate2)
	{
		var str1=ChkDate(ctlDate1.value, dateFormat, dateSplitChar);
		var str2=ChkDate(ctlDate2.value, dateFormat, dateSplitChar);
		if( str1 > str2 ) return 1;
		if( str1 == str2 ) return 0;
		if( str1 < str2 ) return -1;
	}
	
//********************************************

	function Autotab1(val,what,digitcount,destination) {
		obj = eval('document.forms[0].' + destination)
		objFrom = eval('document.forms[0].' + what)

		if (what == 'SSN1' || what == 'SSN2' || what == 'SSN3') {
			if (val.length == digitcount) obj.focus();
		}

		if (what.indexOf('EmployedHereFrom') !== -1 || what.indexOf('EmployedHereTo') !== -1) {
			if (val.length == digitcount) {
				if (CheckDate(val,what))
					obj.focus();
				else
					objFrom.value='';
			}
		}
	}

	function CheckNumeric() {
		if((window.event.keyCode < 48 || window.event.keyCode > 57) && (window.event.keyCode < 96 || window.event.keyCode > 105) && (window.event.keyCode != 9) && (window.event.keyCode != 46) && (window.event.keyCode != 8)) {
			window.event.returnValue =false;
		}
	}
	
//******************************************
//  Focus 頁面上第一個可顯示的控制項
//******************************************
	function FocusFirstVisibleObj(){
	    webForm = document.forms[0];
	    objInput = document.getElementsByTagName("INPUT");
        var i=0
        while( !((objInput[i]!=null) && (objInput[i].type!='hidden'))) {i++}
	    objInput[i].focus();
	}
