﻿// JScript 文件

//    var xmlHttp;
      function CallBackObject()
    {
        this.xmlHttp = this.GetCallBackObject();
    }
CallBackObject.prototype.GetCallBackObject=function()
{
    var xmlHttp=false;
   /*@cc_on 
    /*@if(@_jscript_version >=5)
    {

        try
       {
            xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
       }catch(e)
       {
            try
           {
                xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
           }
           catch(e)
           {
                xmlHttp=false;
           } 
       }
    }
   /*@else
    xmlHttp=false;
  @end  @*/
    
    if(!xmlHttp && typeof XMLHttpRequest != 'undefined')
      {
        try
        { 
            xmlHttp=new XMLHttpRequest();
        }catch(e)
        {
            xmlHttp=false;
        }   
     }
   
    return xmlHttp;
}

CallBackObject.prototype.DoCallBack=function(url,types,tongbu)
{
   // alert(url);
    if(this.xmlHttp)
    {
        if(this.xmlHttp.readyState==4 || this.xmlHttp.readyState==0)
       {
           var othis = this;
           this.xmlHttp.open(types, url, tongbu);
           this.xmlHttp.onreadystatechange=function()
           {
            othis.ReadyStateChange();
           } 
           this.xmlHttp.send();
       } 
       
    }
}
CallBackObject.prototype.AbortCallBack=function()
{
    if(this.xmlHttp)
    {
       this.xmlHttp.abort();
       //alert("请求关闭了");
    }
}
CallBackObject.prototype.OnLoading=function()
{
    //alert("请求正在加载");
}

CallBackObject.prototype.OnLoaded=function()
{
    //alert("请求已加载");
}

CallBackObject.prototype.OnInteractive=function()
{
  //  alert("交互中");
}

CallBackObject.prototype.OnAbort=function()
{
    //alert("取消中:");
}

CallBackObject.prototype.OnComplete=function(responseText,responseXML,element)
{
   // alert("加载完成");
}

CallBackObject.prototype.OnError=function(status,statusText)
{
    alert("出错了,请与管理员联系"+statusText+status);
}

CallBackObject.prototype.ReadyStateChange=function()
{
   if(this.xmlHttp.readyState==1)
  {
    this.OnLoading();
  }
  if(this.xmlHttp.readyState==2)
  {
    this.OnLoaded();
  } 
  if(this.xmlHttp.readyState==3)
  {
    this.OnInteractive();
  } 
  if(this.xmlHttp.readyState==4)
  {
    if(this.xmlHttp.status==0)
    {
        this.OnAbort();
    }
    else if(this.xmlHttp.status ==200 && this.xmlHttp.statusText=="OK")
    {
        this.OnComplete(this.xmlHttp.responseText,this.xmlHttp.responseXML);
    }
    else
    {
        this.OnError(this.xmlHttp.status,this.xmlHttp.statusText,this.xmlHttp.responseText);
    }
}
}

String.prototype.trim = function() {
    return this.replace(/(^\s*)|(\s*$)/g, "");
}

String.prototype.Insert = function(index, str) {
    return this.substring(0, index) + str + this.substr(index);
}

function getBrowserType() {
    var Sys = {};
    var ua = navigator.userAgent.toLowerCase();
    var s;
    (s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] : (s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] : (s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] : (s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] : (s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0;
    return Sys;
}

function isDate(data) {
    var reg = /^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([13579][01345789]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\s(((0?[0-9])|(1[0-9])|(2[0-3]))\:(([0-5][0-9])|([0-9]))(((\s)|(\:(([0-5][0-9])|([0-9]))))?)))?$/;
    if (reg.test(data))
        return true;
    return false;
}
function isEmail(eMail) {
    var reg = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
    if(reg.test(eMail))
        return true;
    return false;
}
function isNumber(num) {
    var reg = /^\d+/;
    if (reg.test(num))
        return true;
    return false;
}
function isHanZhi(message) {
    var reg = /[u4e00-u9fa5]/;
    if (reg.test(message))
        return true;
    return false;
}
function isEnAndNumber(message) {
    var reg = /^[A-Za-z0-9_-]+$/;
    if (reg.test(message))
        return true;
    return false;
}
function $(obj) {
    if (typeof obj == "string")
        return document.getElementById(obj);
    return obj;
}

function Ajax(url, callback_f, submittype, errorf) {
    if (submittype.toLowerCase != "get" && submittype.toLowerCase != "post") {
        submittype = "get";
    }
    var cbo = new CallBackObject();
    cbo.OnComplete = callback_f;    //请求成功后执行的方法
    cbo.OnError = errorf;
    cbo.DoCallBack(url, submittype,true);//true为不同步,false为同步
}

/*
callback_f method template
*/
function result(responseText, responseXML) {
    alert(responseText);
}

/*js 跨域*/
function GetResultByJS(script_e, url, callback_f) {
    if (typeof script_e == "string") {
        script_e = document.getElementById("script_e");
    }
    if (!script_e) {
        document.body.appendChild(script_e = document.createElement("script"));
    }
    if (!callback_f) {
        callback_f = function() { };
    }
    script_e.onload = function() {
        callback_f();
    }
    script_e.onreadystatechange = function() {
        if (script_e.readyState == "loaded") {
            callback_f();
        }
    }

    script_e.src = url;
}

function GetSrcEvent() {
    var event = window.event || arguments.callee.caller.arguments[0];
    return event;
}
function getSrcElement() {
    var e = window.event || arguments.callee.caller.arguments[0];
    if (e == null || e == undefined)
        return null;
    var element = e.srcElement || e.target;
    return element;
}

Array.prototype.inArray = function(value) 
{
    var i; for (i = 0; i < this.length; i++) {
        // Matches identical (===), not just similar (==).
        if (this[i] == value) {
            return true;
        }
    } return false;
}



var tempName;
var checkUserName = false;
var checkPwd = false;
var checkEmail = true;
var checkCardID = false;
var checkAnswer = false;
var checkVcode = false;
var qid;
function GetCode(value) {
    $("spacode").innerHTML = "";
    Ajax("../Ajax/Code.ashx?action=getcode&date="+new Date(), SetCodeText, "post",null);
    //$("question").style.display = "none";
}
function SetCodeText(responseText, responseXML) {
    $("txtCode").value = responseText;
    $("spacode").style.color = "green";
    $("spacode").innerHTML = "恭喜您获得激活码";
    //$("question").style.display = "none";
}

function Exists(value) {
    var reg = /^[a-zA-Z0-9]{6,20}$/;
    checkUserName = false;
    if (tempName == value)
        return;
    
    $("spUserName").style.color = "red";
    $("spUserName").innerHTML = "正在验证用户名...";
    if (!reg.test(value)) {
        $("spUserName").innerHTML = "用户名为6到20位之间的数字字母组合";
        return ;
    }
    tempName = value;
    Ajax("/Ajaxreq/CheckName.ashx?action=exists&name=" + value + "&date=" + new Date(), Exists_Complete, "post", Exists_Error);
}

function Exists_Error(status, statusText) {
    $("spUserName").style.color = "black";
    $("spUserName").innerHTML = "验证过程中发生错误,请重试";
}

function Exists_Complete(responseText, responseXML) {
    //responseText返回 1:用户名已经存在,-1:数据验证错误 0:为可用
    switch (responseText) {
        case "1":
            $("spUserName").innerHTML = "用户名已经存在";
            break;
        case "-1":
            $("spUserName").innerHTML = "数据验证错误";
            break;
        case "0":
            $("spUserName").style.color = "green";
            $("spUserName").innerHTML = "此用户名可以使用";
            checkUserName = true;
            break;
        default:
            $("spUserName").innerHTML = "验证过程中发生错误,请重试";
            break;
    }
}



function CheckCardID(value) {
    checkCardID = false;
    var reg = /((\d{15}|\d{17}[\d|x|X])$)/;
    if (!reg.test(value) || value.length>18) {
        $("spCardID").innerHTML = "身份证输入不正确";
        return;
    }
    
    if (value.length == 15) {
        value = value.Insert(6, "19");
    }
    
    var birthday = value.substring(6, 14);
    if (!isDate(birthday)) {
        $("spCardID").innerHTML = "身份证输入不正确";
        return;
    }
    var today = new Date();
    var temp = birthday;

    var byear = temp.substring(0,4);
    if ((parseInt(today.getUTCFullYear()) - parseInt(byear)) > 90) {
        $("spCardID").innerHTML = "身份证输入不正确";
        return;
    }
    
    temp = temp.Insert(4, "/");
    temp = temp.Insert(7, "/");
    var d = Date.parse(temp);
    
    if (d >= today) {
        $("spCardID").innerHTML = "身份证输入不正确";
        return;
    }
    checkCardID = true;
    $("spCardID").innerHTML = "";
    return;
    //获取月份时在个位数时要在前面补0
    var month = today.getMonth().length == 2 ? parseInt(today.getMonth() + 1) : "0" + (parseInt(today.getMonth()) + 1);
    var day = today.getDate().toString().length == 2 ? today.getDate() : "0" + today.getDate();
    var days = parseInt(today.getUTCFullYear() + "" + month + "" + day);
    var age = (days - parseInt(birthday));
    alert(age);
    if (age > 180000) {
        alert("bigger then 18 age");
    }
}

function checkPwds() {
    checkPwd = false;
    var pwd1 = $("txtPwd1").value;
    var pwd2 = $("txtPwd2").value;
    
    if (pwd1.length < 6 || pwd1.length>20) {
        $("spPwd1").innerHTML = "密码在6位到20位之间";
        return;
    }
    $("spPwd1").innerHTML = "";
    if (pwd2.length < 6 || pwd2.length > 20) {
        $("spPwd2").innerHTML = "密码在6位到20位之间";
        return;
    }
    
    if (pwd1 != pwd2) {
        $("spPwd2").innerHTML = "两次输入的密码不一致";
        return;
    }
    checkPwd = true;
    $("spPwd1").innerHTML = "";
    $("spPwd2").innerHTML = "";
}

function checkEmails(value) {
    checkEmail = true;
    return;
    if (!isEmail(value)) {
        $("spEmail").innerHTML = "Email格式不正确";
        return;
    }
    $("spEmail").innerHTML = "";
    checkEmail = true;
}

function setEnable(id) {
    var rlist = document.getElementsByName("answer" + id);
    for (var i = 0; i < rlist.length; i++) {
        rlist[i].disabled = true;
    }
}

function checkAnswers(value, aid,sid) {
    checkAnswer = false;
    if (value != aid) {
        $("sp" + sid).innerHTML = "×";
        return;
    }
    $("sp" + sid).innerHTML = "√";
    setEnable(sid);
    var send = false;
    var qlist = document.getElementsByTagName("dl");
    for (var i = 0; i < qlist.length; i++) {
        if ($("sp" + i).innerHTML != "√") {
            send = false;
            break;
        }
        send = true;
    }
    checkAnswer = send;
    if (send) {
        GetCode();
    }
}

function checkVcodes(value) {
    checkVcode = false;
    if (value.length != 5 || isNaN(value)) {
        $("spancode").innerHTML = "验证码输入有误";
        return;
    }
    $("spancode").innerHTML = "";
    checkVcode = true;
}

function SubmitReg() {
    
    if (!checkCardID) {
        CheckCardID($("txtCardID").value);
        }
    if (!checkEmail) {
        checkEmails($("txtEmail").value);
    }
    if (!checkPwd) {
        checkPwds();
    }
    if (!checkUserName) {
        Exists($("txtUserName").value);
    }
    if (!checkVcode) {
        checkVcodes($("txtVCode").value);
    }
    if (checkCardID && checkEmail && checkPwd && checkUserName && checkVcode)
        return true;
    return false;
}