﻿document.onkeydown = keyDown;
function keyDown(event){
	var e = event || window.event;
	if (e.keyCode == 27){
		return (false);
	}
}

var objAjax = null, objAjaxTimeout = null, tbField = null, divMsg = null;

var Msg = new Array();

Msg["UserID_Init"] = "［登錄賬號］必須填寫（３－２０個字元）";
Msg["UserID_Ok"] = "［登錄賬號］填寫正確！";
Msg["NickName_Init"] = "［昵稱］必須填寫（不可包含符號）";
Msg["NickName_Ok"] = "［昵稱］填寫正確！";
Msg["Email_Init"] = "［Email］必須填寫，格式為 a@b.com";
Msg["Email_Ok"] = "［Email］填寫正確！";

Msg["Passwd_Init"] = "［登錄密碼］必須填寫（６－２０個字元）";
Msg["Passwd_Ok"] = "［登錄密碼］填寫正確！";
Msg["ConfirmPasswd_Init"] = "［確認密碼］必須填寫（６－２０個字元）";
Msg["ConfirmPasswd_Ok"] = "［確認密碼］填寫正確！";
//Msg["Birthday_Init"] = "［出生日期］必須填寫，格式為 2006-1-1 ";
//Msg["Birthday_Ok"] = "［出生日期］填寫正確！";
Msg["vCode_Init"] = "請輸入［附加碼］！（圖片中的四個數位）";
Msg["vCode_Ok"] = "［附加碼］格式正確！";


function ValidateForm(event){
	var e = event || window.event;
	tbField = e.target || e.srcElement;
	divMsg = ge("div" + tbField.id);
	if(!Validate(ge(tbField.id).value,tbField.validate)){
		divMsg.innerHTML = Msg[tbField.id + "_Init"];
		divMsg.className = "Init";
		tbField.valid = false;
	}else{
		if(tbField.exist){
			if(objAjaxTimeout){clearTimeout(objAjaxTimeout);objAjaxTimeout = null;}
			if(!objAjax){objAjax = new Ajax();}else if(objAjax.readyState != 0){objAjax.abort();}
			objAjax.clearParams();
			objAjax.addParams("Action","CheckExist");
			objAjax.addParams("Field",tbField.id);
			objAjax.addParams(tbField.id,tbField.value);
			objAjax.OnComplete = CheckExist;
			objAjaxTimeout = setTimeout(function(){objAjax.CallBack("POST","regAjax.aspx");},600);
		}else{
			divMsg.innerHTML = Msg[tbField.id + "_Ok"];
			divMsg.className = "Ok";
			tbField.valid = true;
		}
	}
	ge("btnInfoAdd").disabled = !isValidForm();
}

function CheckExist(txt,xml){
	var xmlDoc = xml.documentElement;
    var result = eval(xmlDoc.getElementsByTagName("result")[0].firstChild.nodeValue);
    var responseText = xmlDoc.getElementsByTagName("responseText")[0].firstChild.nodeValue;
    var field = xmlDoc.getElementsByTagName("field")[0].firstChild.nodeValue;
    try{divMsg = ge("div" + field);tbField = ge(field);}catch(e){}
    divMsg.innerHTML = responseText;
	if(result){
		divMsg.className = "Ok";
		tbField.valid = true;
	}else{
		divMsg.className = "Init";
		tbField.valid = false;
	}
}

function isValidForm(){
	var frm = document.forms[0];
	var btnValid = true;
	for(var i = 0; i < frm.length; i++){
		if(typeof(frm.elements[i].valid) == "boolean"){
			btnValid = btnValid && frm.elements[i].valid;
		}
	}
	if(btnValid){ge("btnInfoAdd").value = "確定送出";}else{ge("btnInfoAdd").value = "資料未填寫完成，無法送出";}
	return btnValid;
}

function InitForm(){
	var frm = document.forms[0];
	for(var i = frm.length-1; i >= 0; i--){
		if(frm.elements[i].type == "text" || frm.elements[i].type == "password"){
		    frm.elements[i].focus();
		}
	}
}

function ValidateConfirmPasswd(){
    if(ge("ConfirmPasswd").value != ge("Passwd").value && ge("Passwd").value != ""){
		ge("divConfirmPasswd").innerHTML = "［確認密碼］與［密碼］不同！";
		ge("divConfirmPasswd").className = "Init";
		ge("ConfirmPasswd").valid = false;
    }else if(ge("ConfirmPasswd").value == ge("Passwd").value && ge("Passwd").value != ""){
		ge("divConfirmPasswd").innerHTML = Msg["ConfirmPasswd_Ok"];
		ge("divConfirmPasswd").className = "Ok";
		ge("ConfirmPasswd").valid = true;
    }else if(!Validate(ge("ConfirmPasswd").value,"Passwd")){
		ge("divConfirmPasswd").innerHTML = Msg["ConfirmPasswd_Init"];
		ge("divConfirmPasswd").className = "Init";
		ge("ConfirmPasswd").valid = false;
    }
	ge("btnInfoAdd").disabled = !isValidForm();
}

function InfoAdd(){
    loading();
    objAjax=new Ajax();
    objAjax.addParams("UserID",ge("UserID").value);
    objAjax.addParams("Passwd",ge("Passwd").value);
    objAjax.addParams("ConfirmPasswd",ge("ConfirmPasswd").value);
    objAjax.addParams("NickName",ge("NickName").value);
    objAjax.addParams("Email",ge("Email").value);
    //objAjax.addParams("Birthday",ge("Birthday").value);
    objAjax.addParams("Msn",ge("Msn").value);
    objAjax.addParams("Tel",ge("Tel").value);
    objAjax.addParams("Mobile",ge("Mobile").value);
    objAjax.addParams("AreaID",ge("AreaID").value);
    objAjax.addParams("vCode",ge("vCode").value);
    objAjax.addParams("Action","Register");
    objAjax.OnComplete = InfoAddResult;
    objAjax.CallBack("POST","regAjax.aspx");
    return (false);
}

function loading(){
    ge("plInfoAdd").style.display = "none";
    ge("plLoading").style.display = "block";
}

function InfoAddResult(txt,xml){
    var xmlDoc = xml.documentElement;
    var result = eval(xmlDoc.getElementsByTagName("result")[0].firstChild.nodeValue);
    var responseText = xmlDoc.getElementsByTagName("responseText")[0].firstChild.nodeValue;
    if(result){
        alert(responseText);
        top.location = "payment.aspx";
    }else{
        alert(responseText);
        ge("plInfoAdd").style.display = "block";
        ge("plLoading").style.display = "none";
    }
    ge("imgVerifyCode").src = "inc/vCode.aspx?SessionName=vCode_Register&" + Math.round(Math.random() * 10);
}

window.onload = function(){
    if(ge("form1")){
	    ge("form1").onsubmit = function(){return (false);};
	    ge("btnInfoAdd").disabled = true;
	    ge("btnInfoAdd").value = "等待填寫註冊資料";
	    ge("UserID").valid = false;
	    ge("Passwd").valid = false;
	    ge("ConfirmPasswd").valid = false;
	    ge("Email").valid = false;
	    ge("NickName").valid = false;
	    //ge("Birthday").valid = false;
	    ge("vCode").valid = false;
	    ge("UserID").validate = "UserID";
	    ge("Passwd").validate = "Passwd";
	    ge("ConfirmPasswd").validate = "Passwd";
	    ge("Email").validate = "Email";
	    ge("NickName").validate = "Text";
	    //ge("Birthday").validate = "Date";
	    ge("vCode").validate = "vCode";
	    ge("UserID").exist = true;
	    ge("NickName").exist = true;
	    //ge("Email").exist = true;
	    addEventHandle(ge("btnInfoAdd"),"onclick",InfoAdd);
	    addEventHandle(ge("UserID"),"onfocus,onblur,onkeyup",ValidateForm);
	    addEventHandle(ge("Passwd"),"onfocus,onkeyup",ValidateForm);
	    addEventHandle(ge("Passwd"),"onblur",ValidateConfirmPasswd);
	    addEventHandle(ge("ConfirmPasswd"),"onfocus,onblur,onkeyup",ValidateConfirmPasswd);
	    addEventHandle(ge("Email"),"onfocus,onblur,onkeyup",ValidateForm);
	    addEventHandle(ge("NickName"),"onfocus,onblur,onkeyup",ValidateForm);
	    //addEventHandle(ge("Birthday"),"onfocus,onkeyup",ValidateForm);
	    addEventHandle(ge("vCode"),"onfocus,onkeyup",ValidateForm);
    	InitForm();
	}else{
	    alert("form not loaded!");
	}
}
