﻿
function send_join_msg(obj, flag, msg) {
	var div_msg;
	if(flag) div_msg = "<span id=\""+obj.id+"_span\" class=\"join_msg_fix_div\"><img class=\"join_msg_img\" src=\"image/fix_s.gif\" alt=\"正確訊息圖示\"> "+msg+"</span>";
	else div_msg = "<span id=\""+obj.id+"_span\" class=\"join_msg_err_div\"><img class=\"join_msg_img\" src=\"image/err_s.gif\" alt=\"錯誤訊息圖示\"> "+msg+"</span>";
	if($(obj.id+"_span")) {
		obj.innerHTML = "";
	}
	obj.innerHTML = div_msg;
}
function focus_join_msg(obj, tys) {
	switch(obj.id) {
		case "bday_1":
		case "bday_2":
		case "bday_3": var oid = "bday"; break;
		case "cellphone2": var oid = "cellphone"; break;
		default:
		var oid = obj.id;
		break;
	}
	if(obj.value && $(oid+"_msg_span") && $(oid+"_msg_span").className == "join_msg_fix_div") return;
		var msg_div = $(oid+"_msg");
	if(!msg_div) return;
	if(tys == 1) {
		if(msg_div.rel) focus_join_msg(obj, 0);
		else msg_div.rel = msg_div.innerHTML;
		send_join_msg(msg_div, 0, msg_div.innerHTML);
	} else {
	 if(msg_div.rel) msg_div.innerHTML = msg_div.rel;
	}
}
function check_join_from(obj) {
	if(!obj) return;
	focus_join_msg(obj, 0);
	if(!obj.value) return;
	switch(obj.id) {
		case "bday_1":
		case "bday_2":
		case "bday_3": var msg_div = $("bday_msg"); break;
		case "cellphone2": var msg_div = $("cellphone_msg"); break;
		default:
		var msg_div = $(obj.id+"_msg");
		break;
	}
	if(!msg_div) return;
	switch(obj.id) {
	case "id": // 帳號
	if(obj.value.length < 3 || obj.value.length > 14) {
	send_join_msg(msg_div, 0, "帳號請使用a-z,0-9三至十五個字的英文或數字組成，不可有中文，往後無法修改。");
	return false;
	break;
	}
	var myReg = /^[0-9a-zA-Z_]{3,15}$/;
	if(myReg.test(obj.value)){
			check_join_from_ajax_send(obj, obj.value, "ajax.asp?s=id&v=", obj.id);
		return true;
	}else{
		send_join_msg(msg_div, 0, "帳號請使用a-z,0-9三至十五個字的英文或數字組成，不可有中文，往後無法修改。");
		return false;
	}
	break;
	case "passwd": // 密碼
	if(obj.value.length < 5 || obj.value.length > 14) {
	send_join_msg(msg_div, 0, "密碼請使用以字母開頭，六至十五個字的英文或數字組成，可在會員中心修改。");
	return false;
	break;
	}
	var myReg = /^[a-zA-Z][a-zA-Z0-9_]{5,15}$/;
	if(myReg.test(obj.value)){
			send_join_msg($(obj.id+"_msg"), 1, "密碼檢查通過。");
		return true;
	}else{
		send_join_msg(msg_div, 0, "密碼請使用以字母開頭，六至十五個字的英文或數字組成，可在會員中心修改。");
		return false;
	}
	break;
	case "check_passwd": // 確認密碼
	if(obj.value.length < 5 || obj.value.length > 14) {
	send_join_msg(msg_div, 0, "密碼請使用以字母開頭，六至十五個字的英文或數字組成，可在會員中心修改。");
	return false;
	break;
	}
	var myReg = /^[a-zA-Z][a-zA-Z0-9_]{5,15}$/;
	if(myReg.test(obj.value)){
			var pd = $("passwd");
			if(!pd.value) {
				send_join_msg(msg_div, 0, "請先輸入密碼再輸入確認密碼。");				
				return false;
				break;
			}
			if(pd.value != obj.value) {
				send_join_msg(msg_div, 0, "兩次輸入的密碼不一致，請重新輸入。");
				return false;
				break;
			}
			send_join_msg(msg_div, 1, "確認密碼檢查通過。");
		return true;
	}else{
		send_join_msg(msg_div, 0, "密碼請使用以字母開頭，六至十五個字的英文或數字組成，可在會員中心修改。");
		return false;
	}
	break;
	case "name": // 姓名或暱稱
	var tname = obj.value.replace(/^\s*|\s*$/g, "");
	tname = tname.replace(/\040/g, "");
	obj.value = tname;
	if(tname.length < 2 || tname.length > 8) {
	send_join_msg(msg_div, 0, "姓名或暱稱只能是由二至八個字的中文組成。");
	return false;
	break;
	}
	var myReg = tname.replace(/[^\u4E00-\u9FA5]/g, '');
	if(myReg == tname) {
			send_join_msg(msg_div, 1, "姓名或暱稱檢查通過。");
		return true;
	}else{
		send_join_msg(msg_div, 0, "姓名或暱稱只能使用中文字，以二至八個字的中文組成。");
		return false;
	}
	break;
	case "sex":
	if(!check_join_from_r(document.getElementsByName("sex"))) return false;
	return true;
	break;
	case "ident":
	if(!check_join_from_r(document.getElementsByName("ident"))) return false;
	return true;
	break;
	case "bday_1": // 西元年
	case "bday_2": // 月份
	case "bday_3": // 日期
	if(!check_join_from_bday(obj)) return false;
	return true;
	break;

	case "cellphone": // 行動電話
	if(obj.value.length != 4) {
	send_join_msg(msg_div, 0, "請輸入行動電話前四碼。");
	return false;
	break;
	}
		if(check_join_from_cellphone()) return true;
	break;
	case "cellphone2": // 行動電話
	if(obj.value.length != 6) {
	send_join_msg(msg_div, 0, "請輸入行動電話後六碼。");
	return false;
	break;
	}
		if(check_join_from_cellphone()) return true;
	break;
	case "email": // 電子郵件
	var c = obj.value.charAt(0);
	if (!((c>="a" && c<="z") || (c>="0" && c<="9") || (c>="A" && c<="Z"))) {
		send_join_msg(msg_div, 0, "電子郵件格式不正確。");
		return false;
	}
	var c = obj.value.charAt(obj.value.length-1);
	if (!((c>="a" && c<="z") || (c>="0" && c<="9") || (c>="A" && c<="Z"))) {
		send_join_msg(msg_div, 0, "電子郵件格式不正確。");
		return false;
	}
	if ((obj.value.indexOf("@")=="-1") || (obj.value.indexOf(".")=="-1")) {
		send_join_msg(msg_div, 0, "電子郵件格式不正確。");
		return false;
	} 
		check_join_from_ajax_send(obj, obj.value, "ajax.asp?s=email&v=", obj.id);
		return true;
	break;
	case "agree": // 服務條款
	if(!obj.checked) {
		$("agree_msg").style.display = "";
		send_join_msg(msg_div, 0, "您尚未詳細閱讀、理解並同意使用服務條款。");
		$("from_submit").disabled = true;
		return false;		
	}
		$("agree_msg").style.display = "none";
		$("from_submit").disabled = false;
		return true;
	break;
	}
}
function check_dbc(obj){
	if(!obj) return;
	var vs = obj.value;
	if(!vs) return;
	var vsg = "";
	for(var i = 0; i < vs.length; i++){
		if(vs.charCodeAt(i) == 12288) {
		 vsg += String.fromCharCode(32);
		 continue;
		}
  if(vs.charCodeAt(i) > 65280 && vs.charCodeAt(i) < 65375){
  vsg += String.fromCharCode(vs.charCodeAt(i) - 65248);
  continue;
  }
  vsg += String.fromCharCode(vs.charCodeAt(i))
  }
	obj.value = vsg;
}
function check_join_from_ajax_send(obj, strs , urls, tys) {
	if(!obj) return;
	var ajax = createAJAX();
	if (ajax.readyState == 4 || ajax.readyState == 0) {
		var str = escape(strs);
		if(!str) return;
		ajax.open("GET", urls + str, true);
		switch(tys) {
			case "id":
				ajax.onreadystatechange = function() {check_id_ajax(obj, ajax)};  
			break;
			case "cellphone":
				ajax.onreadystatechange = function() {check_cellphone_ajax(obj, ajax)};  
			break;
			case "email":
				ajax.onreadystatechange = function() {check_email_ajax(obj, ajax)};  
			break;					
		}
		ajax.send(null);
	}
}
function check_id_ajax(obj, ajax) {
	if (ajax.readyState == 4) {
		if(!ajax.responseText) return;
		if(ajax.responseText == 1) {
			send_join_msg($(obj.id+"_msg"), 1, "帳號檢查通過。");
			return true;
		} else {
		  send_join_msg($(obj.id+"_msg"), 0, "此帳號已經有人使用了，請換個帳號試試。");
			return false;
		}
	}
}
function check_cellphone_ajax(obj, ajax) {
	if (ajax.readyState == 4) {
		if(!ajax.responseText) return;
		if(ajax.responseText == 1) send_join_msg($(obj.id+"_msg"), 1, "行動電話號碼檢查通過。");
		else send_join_msg($(obj.id+"_msg"), 0, "此行動電話號碼已經有人使用了，請換個行動電話號碼試試。");
	}
}
function check_email_ajax(obj, ajax) {
	if (ajax.readyState == 4) {
		if(!ajax.responseText) return;
		if(ajax.responseText == 1) send_join_msg($(obj.id+"_msg"), 1, "電子郵件號碼檢查通過。");
		else send_join_msg($(obj.id+"_msg"), 0, "此電子郵件已經有人使用了，請換個電子郵件試試。");
	}
}
function check_join_from_bday_year(obj, tys) {
	if(!obj) return;			
	if(tys == 0) {
	if(obj.value == "西元年") obj.value = "";
	} else {
		if(!obj.value) {
			obj.value = "西元年";
		}
	}
}
function check_join_from_bday(obj) {
	if(!obj) return;
	if(obj.id == "bday_1") {
		if(obj.value.length != 4) {
			send_join_msg($("bday_msg"), 0, "出生日期的年份只能為四位數字。");
			return false;
		}
	var myReg = /^[0-9]{4}$/;
	if(!myReg.test(obj.value)){
	send_join_msg($("bday_msg"), 0, "出生日期的年份只能為數字。");
	return false;
	}
}
	if(!$("bday_1").value) {
			send_join_msg($("bday_msg"), 0, "請輸入正確的出生年份。");
			return false;
	}
	if(!$("bday_2").value) {
			send_join_msg($("bday_msg"), 0, "請選擇正確的月份。");
			return false;
	}
	if(!$("bday_3").value) {
			send_join_msg($("bday_msg"), 0, "請選擇正確的日期。");
			return false;
	}

	var year = new Date().getFullYear();
	if((year-$("bday_1").value) <= 0 || (year-$("bday_1").value) >= 120) {
	send_join_msg($("bday_msg"), 0, "年齡不能小於 0 歲或大於 120 歲。");
	return false;
	}	
	var b2, b3;
	if($("bday_2").value.length < 2) b2 = "0"+$("bday_2").value;
	else b2 = $("bday_2").value;
	if($("bday_3").value.length < 2) b3 = "0"+$("bday_3").value;
	else b3 = $("bday_3").value;	
	
	var bday = $("bday_1").value+b2+b3;
	re=/((1|2)(\d\d\d)(\/|-|.)((0)([1-9])|(1)([0-2]))(\/|-|.)(([0-2])(\d)|(3)(0|1))|(1|2)(\d\d\d)((0)([1-9])|(1)([0-2]))(([0-2])(\d)|(3)(0|1)))/;
            //(1|2)(\d\d\d)(\/|-|.)((0)([1-9])|(1)([0-2]))(\/|-|.)(([0-2])(\d)|(3)(0|1)) //2008/03/20
            //(1|2)(\d\d\d)((0)([1-9])|(1)([0-2]))(([0-2])(\d)|(3)(0|1))             //20080320
  if((!re.test(bday))){
			send_join_msg($("bday_msg"), 0, "輸入的日期格式不正確。");
			return false;
} else {
	if(!(String(bday).length==0)) {
			bday=bday.replace(/\./g,'');
		  bday=bday.replace(/\-/g,'');
		  bday=bday.replace(/\//g,'');
			//判斷 月 30 天及 2月29日
      re=/(((0)(2|4|6|9)|(1)(1))(3)(1)|(0)(2)(3)(0)|(\d)(\d)(0)(0))/;
      if(re.test(bday.Mid(4,4)) || bday.Mid(4,4)=='0229' && !(parseInt(bday.Left(4))%4)==0) {
			send_join_msg($("bday_msg"), 0, "輸入的日期可能超過該月最大日期。");
			return false;
      } else bday = bday.Left(4)+"/"+bday.Mid(4,2)+"/"+bday.Mid(6,2);
      }
}
	send_join_msg($("bday_msg"), 1, "出生日期檢查通過。");
	return true;
}
function check_join_from_cellphone(){
	var all_num = $("cellphone").value+$("cellphone2").value;
	if(!$("cellphone").value) {
				send_join_msg($("cellphone_msg"), 0, "請輸入行動電話前四碼，並以 09 為開頭。");
		return false;
	}
	if(!$("cellphone2").value) {
				send_join_msg($("cellphone_msg"), 0, "請輸入行動電話後六碼。");
		return false;
	}
	var myReg = /^[09]{2}[0-9]{8}$/;
	if(myReg.test(all_num)){
		check_join_from_ajax_send($("cellphone"), all_num, "ajax.asp?s=cellphone&v=", "cellphone");
		return true;
	}else{
		send_join_msg($("cellphone_msg"), 0, "行動電話號碼只能為數字，並以 09 為開頭。");
		return false;
	}
}
function check_join_from_jump(obj){
	if(!obj) return;
	switch(obj.id) {
		case "cellphone":
		if(obj.value.length >= 4) $("cellphone2").focus();
		break;
		case "cellphone2":
		if(obj.value.length >= 6) $("cellphone2").blur();
		break;
		case "bday_1":
		if(obj.value.length >= 4) $("bday_2").focus();
		break;
	}
}
function check_join_from_v(obj) {
	var conn = 0;
  for(var i=0;i<obj.length;i++) if(obj[i].checked || obj[i].checked == true) { conn = 1; break; }
	if(conn) {
	return true;
	}
		send_join_msg($(obj.id+"_msg"), 0, "請選擇其中一個選項。");
	return false;
}
function check_join_from_r(obj) {
	var conn = 0;
	var objid = "";
  for(var i=0;i<obj.length;i++) {
  	objid = obj[i].id;
  	if(obj[i].checked || obj[i].checked == true) conn = 1;
  }
  if(conn) {
	if($(objid+"_msg_span")) remove_div(objid+"_msg_span");
	return true;
	} else {
		send_join_msg($(objid+"_msg"), 0, "請選擇其中一個選項。");
	return false;
}
}
function check_join_form() {
	var tmpc="";
	if(!check_join_from($("id"))) tmpc += "id,";
	if(!check_join_from($("passwd"))) tmpc += "passwd,";
	if(!check_join_from($("check_passwd"))) tmpc += "check_passwd,";
	if(!check_join_from($("name"))) tmpc += "name,";
	if(!check_join_from($("sex"))) tmpc += "sex,";
	if(!check_join_from($("ident"))) tmpc += "ident,";
	if(!check_join_from($("bday_1"))) tmpc += "bday_1,";
	if(!check_join_from($("bday_2"))) tmpc += "bday_2,";
	if(!check_join_from($("bday_3"))) tmpc += "bday_3,";
	if(!check_join_from($("cellphone"))) tmpc += "cellphone,";
	if(!check_join_from($("email"))) tmpc += "email,";
	if(!check_join_from($("agree"))) tmpc += "agree,";
	tempc = tmpc.split(",");
	if(tempc != "") {
	$(tempc[0]).focus();
	if(tempc[0] == "check_passwd") $("check_passwd").focus();
	if(tempc[0] == "name") $("name").focus();
	return false;
	}
	return true;
}
function check_join_up_form() {
	var tmpc="";
	if($("passwd").value) {
	if(!check_join_from($("passwd"))) tmpc += "passwd,";
	if(!check_join_from($("check_passwd"))) tmpc += "check_passwd,";
	}
	if(!check_join_from($("name"))) tmpc += "name,";
	if(!check_join_from($("sex"))) tmpc += "sex,";
	if(!check_join_from($("ident"))) tmpc += "ident,";
	if(!check_join_from($("bday_1"))) tmpc += "bday_1,";
	if(!check_join_from($("bday_2"))) tmpc += "bday_2,";
	if(!check_join_from($("bday_3"))) tmpc += "bday_3,";
	if(!check_join_from($("cellphone"))) tmpc += "cellphone,";
	tempc = tmpc.split(",");
	if(tempc != "") {
	$(tempc[0]).focus();
	if(tempc[0] == "check_passwd") $("check_passwd").focus();
	if(tempc[0] == "name") $("name").focus();
	return false;
	}
	return true;
}
