﻿	//被選到的元素
	var Ch_Em = "textarea,"
			  + "input:text,"
			  + "input:checkbox,"
			  + "input:radio,"
			  + "input:password,"
			  + "select";
				 
	$(document).ready(function(){
		arMessage=$(".message").css("background","#FFCCCC");
		arMessage=$(".message:empty").css("background","#FFFFFF");		
		
		if($("#county").val() == ""){
			initCounty();
		}

		$(Ch_Em).focus(function(){
			objElement=GetMessageArea(this);
			DisplayMessage(objElement,GetMessage(this.name));
		});
		
		$(Ch_Em).blur(function(){
			objElement=GetMessageArea(this);
			DisplayMessage(objElement,"");
		});
		
		$("#button3").click(function(){
			$("#button3").attr("disabled","disabled");
			CheckId("Show");
			$("#button3").removeAttr("disabled");
		});

		$("#button4").click(function(){
			$("#button4").attr("disabled","disabled");
			CheckEmail("Show");
			$("#button4").removeAttr("disabled");
		});
		
		$("form").submit(function(){
			$("#send").attr("disabled","disabled");
			if(valid()){
				return true;
			}else{
				$("#send").removeAttr("disabled");
				return false;
			}
		});
		
		$("#tongyi").click(function(){
			DisplayMessage(GetMessageArea($("#tongyi")),"","");
		});
		
		$("#city").change(function(){
			initCounty();
		});
	});
	
	function valid(){
		validflag=true;
		arrObjs=new Array("#myname","#sname","#health","#edu","#class_","#jiaotong","#ilike","#remark","#blood_type");
		for(lop=0;lop < arrObjs.length;lop++){
			validflag=validflag & CheckEmpty(arrObjs[lop]);
		}
		
		arrTels=new Array("#tel","#tel1");
		for(lop=0;lop < arrTels.length;lop++){
			validflag=validflag & CheckTel(arrTels[lop]);
		}
		
		arrNums=new Array("#height","#weight");
		for(lop=0;lop < arrNums.length;lop++){
			validflag=validflag & CheckNum(arrNums[lop]);
		}
		validflag=validflag & CheckDate();
		validflag=validflag & CheckAddress();
		validflag=validflag & CheckId();
		validflag=validflag & CheckPwd("#pwd1","#pwd2");
		validflag=validflag & CheckEmail();
		validflag=validflag & CheckMarriage();
		if(!$("#tongyi").attr("checked")){
			DisplayMessage(GetMessageArea($("#tongyi")),"尚未同意當舖規約","Warning");
			validflag=false;
		}
		return validflag;
	}

	function CheckMarriage(){		
		if(!($("#marriage0").attr("checked") || $("#marriage1").attr("checked"))){
			DisplayMessage(GetMessageArea($("#marriage1").parent()),"此欄尚未選擇","Warning");
			return false;
		}
		return true;
	}
	
	function CheckId(Rshow){
		if(!CheckEmpty("#sfz")){
			return false;
		}
		if($("#na0").attr("checked") == true){
			IdCheck=/^[A-Za-z][12]\d{8}$/;
			if(!IdCheck.test($("#sfz").val())){
				DisplayMessage(GetMessageArea($("#sfz")),"此欄格式不正確","Warning");
				return false;
			}
			IdCard=$("#sfz").val().toUpperCase();
			var EngString = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
			var NumArray=[1,0,9,8,7,6,5,4,9,3,2,2,1,0,8,9,8,7,6,5,4,3,1,3,2,0];
			total = NumArray[EngString.indexOf(IdCard.charAt(0))];
			for(i=1;i<9;i++){
				total+=parseInt(IdCard.charAt(i))*(9-i);
			}
			total+=parseInt(IdCard.charAt(9));
			if(total % 10 != 0){
				DisplayMessage(GetMessageArea($("#sfz")),"此欄格式不正確","Warning");
				return false;
			}
		}else{
			IdCheck=/^[\w-]{8,15}$/;
			if(!IdCheck.test($("#sfz").val())){
				DisplayMessage(GetMessageArea($("#sfz")),"此欄格式不正確","Warning");
				return false;
			}
		}
		return_flag=true;
		$.ajax({
			type: "POST",
			url: "js/mycheck.asp",
			data: "stat=idcard&idcard="+escape($("#sfz").val()),
			async: false,
			error: function(){
				alert("資料讀取錯誤！");
				return_flag=false;
			},
			success: function(RequestData){
				if(RequestData == "IsHave"){
					DisplayMessage(GetMessageArea($("#sfz")),"此身分己註冊過了","Warning");
					return_flag=false;
				}else{
					if(Rshow == "Show"){
						DisplayMessage(GetMessageArea($("#sfz")),"此身分可以使用");
					}
				}
			}
		});
		return return_flag;
	}

	function CheckEmail(Rshow){
		if(!CheckEmpty("#email")){
			return false;
		}

		EmailRegex = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;
		if(!EmailRegex.test($("#email").val())){
			DisplayMessage(GetMessageArea($("#email")),"此欄格式不正確","Warning");
			return false;
		}

		return_flag=true;
		$.ajax({
			type: "POST",
			url: "js/mycheck.asp",
			data: "stat=email&email="+escape($("#email").val()),
			async: false,
			error: function(){
				alert("資料讀取錯誤！");
				return_flag=false;
			},
			success: function(RequestData){
				if(RequestData == "IsHave"){
					DisplayMessage(GetMessageArea($("#email")),"此Email已註冊過了","Warning");
					return_flag=false;
				}else{
					if(Rshow == "Show"){
						DisplayMessage(GetMessageArea($("#email")),"此Email可以使用");
					}
				}
			}
		});
		return return_flag;
	}
	
	function CheckAddress(){
		city=$("#city");
		county=$("#county");
		address=$("#address");
		if(city.val() == "" || ( city.val() != "新竹市" && city.val() != "嘉義市" && county == "" ) || address.val() == ""){
			DisplayMessage(GetMessageArea(address),"此欄未填寫完整","Warning");
			return false;
		}
		return true;	
	}
	
	function CheckDate(){
		if($("#YY").val() == "" || $("#MM").val() == "" || $("#DD").val() == ""){
			DisplayMessage(GetMessageArea($("#YY")),"此欄未填完整","Warning");
			return false;
		}
		YearCheck=/^(19|20)\d{2}$/;
		if(!YearCheck.test($("#YY").val())){
			DisplayMessage(GetMessageArea($("#YY")),"此欄日期格式錯誤","Warning");
			return false;			
		}
		if(!validDate($("#DD").val(),$("#MM").val(),$("#YY").val())){
			DisplayMessage(GetMessageArea($("#YY")),"此欄日期格式錯誤","Warning");
			return false;
		}
		return true;
	}
	
	function validDate(day,month,year){
		if (isNaN(Date.parse(month+"/"+day+"/"+year))){
			return false; 
		}
		var dd = parseInt(day,10);
		var mm = parseInt(month,10)-1;
		var yy = parseInt(year,10);
		var date = new Date(yy,mm,dd);
		if (dd!=date.getDate() || mm!=date.getMonth() || yy!=date.getFullYear()){
			return false;
		}
		return true;
	}	
	
	function initCounty(){
		$("#county").removeAttr("disabled");
		$("#county > option").remove();
		$("#county").append("<option value=\"\"> </option>");
		if( $("#city").val() == "新竹市" || $("#city").val() == "嘉義市" ){
			$("#county").attr("disabled","disabled");
		}else if( $("#city").val() == "" || $("#city").val() == " " ){
		}else{
			$.ajax({
				type: "POST",
				url: "/public/get_city.asp",
				data: "city="+$("#city").val(),
				async: false,
				error: function(){alert("鄉鎮市區資料載入錯誤！");},
				success: function(CountyData){
					arrConuties=CountyData.split(",");
					for(lop=0;lop < arrConuties.length;lop++){
						$("#county").append("<option value=\""+arrConuties[lop]+"\">"+arrConuties[lop]+"</option>");
					}
				}
			});
		}
	}

	function CheckNum(objName){
		obj=$(objName);	
		if(obj.val() == ""){
			DisplayMessage(GetMessageArea(obj),"此欄不可空白","Warning");
			return false;
		}else if(parseFloat(obj.val()) <= 0){
			DisplayMessage(GetMessageArea(obj),"此欄只能輸入大於0的數字","Warning");
			return false;
		}
		return true;
	}
	
	function CheckEmpty(objName){
		obj=$(objName);	
		if(obj.val()==""){
			switch(obj.attr("type")){
				case "select-one":
					DisplayMessage(GetMessageArea(obj),"此欄尚未選擇","Warning");
					break;
				default:
					DisplayMessage(GetMessageArea(obj),"此欄不可空白","Warning");
			}
			return false;
		}
		return true;
	}
	
	function CheckTel(objName){
		if(CheckEmpty(objName)){
			obj=$(objName);
			objvalue=obj.val();
			validflag="";
			TelCheck1=/^\(09\d{2}\)\d{3}-\d{3}$/;
			TelCheck2=/^\((02|04)\)\d{4}-\d{4}(\#\d+)?$/;
			TelCheck3=/^\((03|04|05|06|07|08)\)\d{3}-\d{4}(\#\d+)?$/;
			TelCheck4=/^\((037|049|082|089)\)\d{3}-\d{3}(\#\d+)?$/;
			TelCheck5=/^\((0826|0836)\)\d{2}-\d{3}(\#\d+)?$/;
			validflag =TelCheck1.test(objvalue) || TelCheck2.test(objvalue) || TelCheck3.test(objvalue) || TelCheck4.test(objvalue) || TelCheck5.test(objvalue);
			if(!validflag){
				DisplayMessage(GetMessageArea(obj),"此欄格式不正確","Warning");
			}
			return validflag;
		}
		return false;
	}
	
	function CheckPwd(Pwd1,Pwd2){
		if(!CheckEmpty(Pwd1)){
			return false;
		}
		
		if($(Pwd1).val() != $(Pwd2).val()){
			DisplayMessage(GetMessageArea($(Pwd1)),"密碼輸入不一致","Warning");
			$(Pwd1).val("");
			$(Pwd2).val("");
			return false;
		}

		if(!Format_AccPwd(Pwd1)){
			return false;
		}

		return true;
	}
	
	function Format_AccPwd(objName){
		obj = $(objName);
		obj_value=obj.val();

		Format=/^[\w]{6,20}$/;
		if(!Format.test(obj_value)){
			DisplayMessage(GetMessageArea(obj),"此欄格式不正確","Warning");
			return false;
		}

		Format1=/[A-Za-z]+/;
		Format2=/[0-9]+/;
		if(!(Format1.test(obj_value) && Format2.test(obj_value))){
			DisplayMessage(GetMessageArea(obj),"此欄必需包含數字及英文","Warning");
			return false;
		}
		return true;
	}
	
	function DisplayMessage(objE,DisplayMsg,level){
		objE.html(DisplayMsg);
		if(DisplayMsg != ""){
			switch(level){
				case "Warning":
					objE.css("background","#FFCCCC");
					break;
				default:
					objE.css("background","#DFFFDF");
			}
		}else{
			objE.css("background","#FFFFFF");
		}
	}
	
	function GetMessageArea(obj){
		if(obj.type == "radio" || obj.type == "checkbox"){
			return $(obj).parent().parent().parent().children(".message");
		}else{
			return $(obj).parent().parent().children(".message");
		}
	}
	
	function GetMessage(objname){
		str_="";
		switch(objname){
			case "pwd1":
				str_="請輸入密碼<br/>密碼由6~20字元數字、英文組成";
				break;
			case "pwd2":
				str_="請再次輸入密碼";
				break;				
			case "myname":
				str_="請輸入您的真實姓名";
				break;
			case "sname":
				str_="請輸入您的暱稱";
				break;
				case "YY":
			case "DD":
			case "MM":
				str_="請輸入您的出生年月日<br/>格式為YYYY-MM-DD";
				break;
			case "sfz":
				str_="本國國民請輸身分證字號<br/>外藉人士請輸入護照號碼";
				break;
			case "tel":
				str_="交易和一般聯絡時使用，<br/>格式如下：<br/>(0x)xxxx-xxxx <br/>(0x)xxx-xxxx <br/>(0xx)xxx-xxx <br/>(08xx)xx-xxx <br/>(09xx)xxx-xxx";
				break;
			case "tel1":
				str_="緊急連絡時使用，<br/>格式如下：<br/>(0x)xxxx-xxxx <br/>(0x)xxx-xxxx <br/>(0xx)xxx-xxx <br/>(08xx)xx-xxx <br/>(09xx)xxx-xxx";
				break;
			case "email":
				str_="請輸您的EMAIL";
				break;
			case "city":
				str_="請選擇（縣／市）";
				break;
			case "county":
				if($("#city").val() == ""){
					str_="請先選擇（縣／市）";
				}
				else{
					str_="請選擇（鄉／鎖／市／區）";
				}
				break;
			case "height":
				str_="請輸入您的身高";
				break;
			case "weight":
				str_="請輸入您的體重";
				break;
			case "blood_type":
				str_="請選擇您的血型";
				break;
			case "health":
				str_="請選擇您的身體狀況";
				break;
			case "edu":
				str_="請選擇您的學歷";
				break;
			case "class_":
				str_="請選擇您目前的職業";
				break;
			case "jiaotong":
				str_="請選擇您搭乘的交通工具";
				break;
			case "ilike":
			case "remark":
				str_="請您稍為排版一下，<br/>方便其他會員閱讀，<br/>也能讓您自己增加交易成功的機率";
				break;
			default:
		}
		return str_;
	}