function isFilled(key)
{     
	if(key.value == "" || key.value == null) 
	{
		key.focus();
		return false;
	}
	else      
	return true;
}
function chkradio(R)
{
    	var i; 
    	for( i=0 ; i<R.length ; i++ )
    	{	
    		if(R[i].checked)
    		{
			return true;
    		} 
    	}
    	return false;
}
function tran_char(abc,valid)
{
        var i;

        for( i=0;i<abc.length;i++)
        {
                var x =abc.charAt(i);
                if( valid.indexOf(x) ==-1 ) return false;
        }
        return true;
}
function chkyy(y)
{
	if(y.value.length!=4)
	{
		return false;
	}
	
	if(y.value >2000 || y.value <1900)
	{	
		y.focus();
		return false;
	}
}
function chkselect(E)
{
 	if(E.options[0].selected)
 	{
   		E.focus();
   		return false;
 	}
}
function chkemail(z)
{
    for ( i=0; i<= z.value.length - 1 ;i++ )
    {
    x = z.value.charAt(i);
    y = escape( x);
	if ( y != x && y !='%40')
		{
			alert('電子信箱錯誤');
			z.focus();
			return false;
			i = z.value.length;
		}
	}
	
	if ( z.value.indexOf('@') == -1 )
		{
			alert('電子信箱格式錯誤');
			z.focus();
			return false;
		}
	if ( z.value.indexOf('.') == -1 )
		{
			alert('電子信箱格式錯誤');
			z.focus();
			return false;
		}
	if (z.value.charAt(0)=='@') 
	{
		alert('電子信箱格式錯誤');
		z.focus();
		return false; //Email 第一個字不可為'@'	
	}	
		return true;
}
function IDCkSum( id )
{
	var i;
	// 身分證字號檢查

	// 長度必須為10碼
	if(id.length>10)
		return (-6);

	if(id.length<10)
		return (-1);

	// 第一碼須為A到Z
	var c = id.charAt(0);
	if(c<"A" || c> "Z")
		return (-2);

	// 第二碼必須為1或2
	c = id.charAt(1);
	if(c!="1" && c!="2")
		return (-3);
  
	// 第二碼至第十碼必須為數字
	for(i=1;i<10;i++)
		if(isNaN(parseFloat(id.charAt(i))))
			return(-4);
  
	// 計算一:將第一碼英文轉數字A=10,B=11,C=12,.....
	// ABCDEFGHJKLMNPQRSTUVXYWZIO, please notice the sequence of I, O, W 
	// 10 ~35
	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(id.charAt(0)==alph[i])
			n=i;

	var tot1 = parseFloat(num[n].charAt(0)) + (parseFloat(num[n].charAt(1)) * 9);
  
	// 計算二:第2碼*8 + 第3碼*7 + .....
	var tot2 = 0;
	for(i=1;i<id.length-1;i++)
		tot2 = tot2 + parseFloat(id.charAt(i))*(9-i);
  
	// 計算三:第10碼數字
	var tot3 = parseFloat(id.charAt(9));
  
	var tot4 = tot1 + tot2 + tot3;
  
	// 總合除以10餘數必須為0
	if((tot4 % 10)!=0)
		return (-5);

	return (0);
}

function check_id( id )
{
		var ck = IDCkSum(id);

		if(ck==-6)
		{
			alert("您的身分證號碼超過10個字 !\n");
			return false;
		}

		if(ck==-1)
		{
			alert("您的身分證號碼不滿10個字 !\n");
			return false;
		}

		if(ck==-2)
		{
			alert("您的身分證號碼第一碼必須是大寫的英文字母 !\n");
			return false;
		}

		if(ck==-3)
		{
			alert("您的身分證號碼第二碼有問題 !\n");
			return false;
		}

		if(ck==-4)
		{
			alert("您的身分證號碼第二到十碼有問題 !");
			return false;
		}

		if(ck==-5)
		{
			alert("您的身分證號碼有問題 !");
			return false;
		}
		return true;
}

function checkform( form )
{
	var c=0;
	if(isFilled(form.name) == false) 
	{
		alert("請輸入姓名，謝謝");
		return false;
	}
	if(chkradio(form.sex) == false) 
	{
        	alert("請選擇性別，謝謝");
             return false;
	}
	if(isFilled(form.b_year) == false) 
	{
        	alert("請輸入出生年，謝謝");
             return false;
	}
	else
	{
		if(tran_char(form.b_year.value,'0123456789') == false)
                	{
                		form.b_year.focus();
                        	alert("出身年份必須是數字!!!");
                		return false;
            	}
            	else
            	{
            		 if(chkyy(form.b_year) == false)
			{
				alert("請填寫正確的西元年份");
			return false;
			}
		}
	}
	if(chkselect(form.b_month) == false)
	{
		alert("請選擇出生月份??");
             return false;
	}
	if(chkselect(form.b_day) == false)
	{
		alert("請選擇出生日期??");
             return false;
	}
	if(isFilled(form.id) == false) 
	{
        	alert("請輸入您的身分證字號??");
            return false;
	}
	if(check_id(form.elements['id'].value) == false) 
      {
        	
             return false;
	}
	if(chkselect(form.city) == false)
	{
		alert("請選擇居住縣市??");
             return false;
	}
	if(isFilled(form.address) == false) 
	{
        	alert("請輸入您詳細地址??");
            return false;
	}
	if(isFilled(form.contact) == false) 
	{
        	alert("請輸入您的緊急聯絡人姓名??");
            return false;
	} 
	if(isFilled(form.h_phone) == false) 
	{
        	alert("請輸入您家裡電話??");
            return false;
	}
	if(isFilled(form.i_phone) == false) 
	{
        	alert("請輸入您緊急聯絡電話??");
            return false;
	}
	if(isFilled(form.email) == false) 
	{
        	alert("請輸入email，謝謝");
             return false;
	}
	if(chkemail(form.email) == false) 
        {
             return false;
        }
      for(var i=1;i<=12;i++)
	{
		if(form.elements['c'+i].checked)
		{
     		}else{
             c++;
         	}
   	}
	if(c == 12)
	{                           
		form.elements['c1'].focus()
		alert("至少一個參加的營隊");
        	return false;
   	}
	if(chkradio(form.payway) == false) 
	{
        	alert("請選擇繳款方式，謝謝");
             return false;
	}
}