﻿var infoboxOkClass = "sustyle19";
var infoboxWarningClass = "sustyle19";
var infoboxErrorClass = "sustyle18";
var infoboxHintClass = "sustyle17";
var infoboxOk2Class = "sustyle20";
var requireErrorInfo = "this field should not be empty。<br \/>";

function formEle(required, datatype, parameter, infobox, errormsg, combine, status) {
    this.r = required;
    this.d = datatype;
    this.p = parameter;
    this.i = infobox;
    this.e = errormsg;
    this.c = combine;
    this.s = status;
}

function isIE() {
    if (document.all) return true;
    return false;
}

var msgIndex = 1;

var msgInfo = new Array();

//msgInfo[msgIndex++] = new Array('Please enter your login name', '4 characters min, 20 characters max.', 'This login name is not available', 'This login name is available');
//var txtUsername = new formEle(true, "txtUsername", null, "txtUsername_info", msgInfo[msgIndex - 1], 'txtUsername_info_check');

msgInfo[msgIndex++] = new Array('Please enter your current email address', 'You have not typed in a valid email address.', 'This email address is currently being used. Please select another email address.', 'This email is available');
var txtEmail = new formEle(true, "txtEmail", null, "txtEmail_info", msgInfo[msgIndex - 1], 'txtEmail_info_check');

msgInfo[msgIndex++] = new Array(
    'Your password is case-sensitive. The password must be at least six characters long.',
    '6 characters min, 20 characters max.', 'Password must have at least 6 code.');
var txtPassword = new formEle(true, "txtPassword", null, "txtPassword_info", msgInfo[msgIndex - 1], 'txtPassword_info_check');

msgInfo[msgIndex++] = new Array('Re-type your password to confirm that you have typed it correctly.', 'The password does not match the password you typed in above.', 'Please try again.');
var txtComPassword = new formEle(true, "txtComPassword", null, "txtComPassword_info", msgInfo[msgIndex - 1], 'txtComPassword_info_check');

msgInfo[msgIndex++] = new Array('', 'Validation Code not filled in.');
var txtValidateCode = new formEle(true, "txtValidateCode", null, "txtValidateCode_info", msgInfo[msgIndex - 1], 'txtValidateCode_info_check');


function initForm() {
    var infobox;
    var x = document.getElementById("baseDiv");
    if (!x) return;
    var y = x.getElementsByTagName("input");
    for (var i = 0; i < y.length; i++) {
        if (y[i].type == "text" || y[i].type == "password") {
            //            initStatus(y[i], true);
            y[i].onfocus = getFocus;
            y[i].onblur = lostFocus;
        }
    }
}

function getDatatype(obj) {
    if (obj.id) {
        if (eval(obj.id).d) return eval(obj.id).d;
    }
    return false;
}

function getInfobox(obj) {
    if (obj.id) {
        if (eval(obj.id).i && document.getElementById(eval(obj.id).i)) return document.getElementById(eval(obj.id).i);
    }
    return;
}

function getInitStatus(obj) {
    if (obj.id) {
        if (eval(obj.id).s || eval(obj.id).s == 0) return eval(obj.id).s;
    }
    return;
}

function getErrorMsg(obj, errorCode) {
    if (obj.id) {
        if (eval(obj.id).e[errorCode]) return eval(obj.id).e[errorCode];
    }
    return;
}

function initStatus(obj, isinput) {
    var infobox = getInfobox(obj);
    var errorCode = getInitStatus(obj);
    if (infobox) {
        if (!errorCode || errorCode == 0) {
            if (getErrorMsg(obj, 0) != "" && getErrorMsg(obj, 0) != undefined) {
                infobox.className = infoboxHintClass;
                infobox.innerHTML = getErrorMsg(obj, 0);
            }
        }
        if (errorCode > 0) {
            if (getErrorMsg(obj, errorCode) != "" && getErrorMsg(obj, errorCode) != undefined) {
                infobox.className = infoboxErrorClass;
                infobox.innerHTML = getErrorMsg(obj, errorCode);
            }
        }
    }
}

function showInfo(obj, errorCode, forcible) {
    var t = obj.offsetTop;
    var l = obj.offsetLeft;
    var e = obj;
    var infobox = getInfobox(obj);
    if (infobox) {
        if (errorCode == 0) {
            var msg = getErrorMsg(obj, errorCode);
            if (msg != "" && msg != undefined) {
                infobox.innerHTML = msg;
                infobox.className = infoboxHintClass;
                if (infobox.innerHTML != '&nbsp;') {
                    infobox.className = infoboxWarningClass;
                }
            }
            else {
                return;
            }
        }
        if (errorCode > 0) {
            if (getErrorMsg(obj, errorCode) != "" && getErrorMsg(obj, errorCode) != undefined) {
                infobox.className = infoboxErrorClass;
                infobox.innerHTML = getErrorMsg(obj, errorCode);
            }
        }
        if (errorCode < 0) {
            infobox.innerHTML = "";
            if (getErrorMsg(obj, 0)) {
                infobox.className = infoboxHintClass;
            }
        }
    }
}

function getFocus(evnt) {
    var obj;
    if (isIE()) {
        obj = event.srcElement;
    }
    else {
        obj = evnt.target;
    }
    showInfo(obj, 0);
}

function lostFocus(evnt) {
    var obj;
    if (isIE()) {
        obj = event.srcElement;
    } else {
        obj = evnt.target;
    }
    showInfo(obj, -1);
    if (obj.value == '') {
        removeDraw(obj);
        //当密码为空时，确认密码也为空
        if (obj.id && eval(obj.id).c && document.getElementById(eval(obj.id).c)) {
            var infobox = getInfobox(obj);
            var errorCode = getInitStatus(obj);
            if (infobox) {
                if (infobox.className == infoboxErrorClass) {
                    infobox.className = "note";
                    infobox.innerHTML = getErrorMsg(obj, 0);
                }
            }
        }
        return;
    }
    errorCode = validateValue(obj);
    if (errorCode != 0) {
        //验证出错，发送监控信息
        if (obj.id == 'phone_country' || obj.id == 'phone_area' || obj.id == 'phone_number' ||
obj.id == 'fax_country' || obj.id == 'fax_area' || obj.id == 'fax_number' || obj.id == 'salekeyword' || obj.id == 'buykeyword') {
            if (errorCode == 1) {
                //                sendFieldclick(obj);
            }
        } else {
            //            sendFieldclick(obj);
        }
    }
    //alert(errorCode);
    if (errorCode == 0) {
        //loginid 和 email  不在这验证
        if (obj.id == 'txtUsername') {
            CheckUserName(obj);
            return;
        }
        if (obj.id == 'txtEmail') {
            CheckEmail(obj);
            return;
        }
        if (obj.id == 'txtPassword') {
            initStatus(document.getElementById('txtComPassword'), true);
            document.getElementById('txtComPassword').value = "";
            removeDraw(document.getElementById('txtComPassword'));
            removeDraw(obj);
        }
        if (obj.id) {
            addDraw(obj);
            document.getElementById(eval(obj.id).i).className = infoboxOk2Class;
            //        		document.getElementById(eval(obj.id).i).innerHTML = (eval(obj.id).e)[3];
            document.getElementById(eval(obj.id).i).innerHTML = 'It is ok.'
        }
    }
    if (errorCode >= 1) {
        if (obj.id) {
            //alert(eval(obj.id).i);
            if (eval(obj.id).i && document.getElementById(eval(obj.id).i))
                document.getElementById(eval(obj.id).i).className = infoboxErrorClass;
            document.getElementById(eval(obj.id).i).innerHTML = (eval(obj.id).e)[errorCode];
        }
        removeDraw(obj);
    }
    if (errorCode < 0 && eval(obj.id)) {
        removeDraw(obj);
        if (obj.id) {
            //alert(eval(obj.id).i);
            if (eval(obj.id).i && document.getElementById(eval(obj.id).i))
                document.getElementById(eval(obj.id).i).className = infoboxHintClass;
            document.getElementById(eval(obj.id).i).innerHTML = (eval(obj.id).e)[0];
            //document.getElementById(eval(obj.id).i).innerHTML = '&nbsp;';
        }
        //showStatus(obj,"Normal");
    }
}
//去掉打勾的
function removeDraw(obj) {
    if (obj.id && eval(obj.id).c && document.getElementById(eval(obj.id).c)) {
        if (document.getElementById(eval(obj.id).c).innerHTML.indexOf("img") > 0) {
            var start = document.getElementById(eval(obj.id).c).innerHTML.indexOf('>');
            var end = document.getElementById(eval(obj.id).c).innerHTML.length;
            document.getElementById(eval(obj.id).c).innerHTML = document.getElementById(eval(obj.id).c).innerHTML.substring(start + 1, end);
        }
    }
}
//打上勾
function addDraw(obj) {
    if (eval(obj.id).c && document.getElementById(eval(obj.id).c)) {
        if (document.getElementById(eval(obj.id).c).innerHTML.indexOf("img") < 0 && document.getElementById(eval(obj.id).c).innerHTML.indexOf("IMG") < 0) {
            document.getElementById(eval(obj.id).c).innerHTML = "&nbsp;<img src=\"/images/signup/icon_right_19x19.gif\" width=\"19\" height=\"16\" align=\"absmiddle\" /> " + document.getElementById(eval(obj.id).c).innerHTML;
        }
    }
}

function validateValue(obj) {
    //trim
    var patn = /(^\s)|(\s$)/;
    if (patn.test(obj.value)) obj.value = obj.value.trim();
    //switcher
    var errorCode = -1;
    switch (getDatatype(obj)) {
        case "txtUsername":
            //alert(obj);
            //changeIdToLowerCase(obj);
            errorCode = validateUsername(obj);
            break;
        case "txtEmail":
            errorCode = validateEmail(obj);
            break;
        case "txtPassword":
            errorCode = validatePassword(obj);
            break;
        case "txtComPassword":
            errorCode = validateSafePassword(obj);
            break;
        case "txtValidateCode":
            errorCode = validateValidateCode(obj);
            break;
        default:
            errorCode = -1;
            break;
    }
    return errorCode;
}

function tot(mobnumber) {
    while (mobnumber.indexOf("０") != -1) {
        mobnumber = mobnumber.replace("０", "0");
    }
    while (mobnumber.indexOf("１") != -1) {
        mobnumber = mobnumber.replace("１", "1");
    }
    while (mobnumber.indexOf("２") != -1) {
        mobnumber = mobnumber.replace("２", "2");
    }
    while (mobnumber.indexOf("３") != -1) {
        mobnumber = mobnumber.replace("３", "3");
    }
    while (mobnumber.indexOf("４") != -1) {
        mobnumber = mobnumber.replace("４", "4");
    }
    while (mobnumber.indexOf("５") != -1) {
        mobnumber = mobnumber.replace("５", "5");
    }
    while (mobnumber.indexOf("６") != -1) {
        mobnumber = mobnumber.replace("６", "6");
    }
    while (mobnumber.indexOf("７") != -1) {
        mobnumber = mobnumber.replace("７", "7");
    }
    while (mobnumber.indexOf("８") != -1) {
        mobnumber = mobnumber.replace("８", "8");
    }
    while (mobnumber.indexOf("９") != -1) {
        mobnumber = mobnumber.replace("９", "9");
    }
    return mobnumber;
}

function checkByteLength(str, minlen, maxlen) {
    if (str == null) return false;
    var l = str.length;
    var blen = 0;
    for (i = 0; i < l; i++) {
        if ((str.charCodeAt(i) & 0xff00) != 0) {
            blen++;
        }
        blen++;
    }
    if (blen > maxlen || blen < minlen) {
        return false;
    }
    return true;
}

function changeIdToLowerCase(obj) {
    var tmp = obj.value.toLowerCase();
    if (obj.value != tmp) {
        obj.value = tmp;
    }
}

function isEqual(objid1, objid2) {
    if (document.getElementById(objid1).value == document.getElementById(objid2).value) {
        return 1;
    } else {
        return 0;
    }
}

function checkDenyWords(content) {
    if (content == null || content.trim() == "") return "";
    var wordsArrays = new Array();
    content = content.toLowerCase();
    wordsArrays = new Array("诚信商务网", "诚信商务", "五三二二", "5322", "注册", "网址", "网站", "www.EC21.com", "内衣通", "0791 6690161", "0791 6690253", "0791 6690310", "0791 6690356", "0791 8885159", "0791-6690310", "0791-6690356", "100data.com", "2288.35007.net", "28897737", "3536.net", "51sobu.com", "5322.com", "5322.net", "5332.com", "5822.com", "5877.com", "5iok.com", "6640620", "6640630", "680.com.cn", "71008.com", "8848", "8gem.com", "9595.cn", "Ecplaza.com", "Ecplaza.net", "E站通", "Post2Ali", "TraCQ在线商务交流", "alloy.com.cn", "aweb.com.cn", "booye.com", "btob.com", "btob.net", "buffet.com.cn", "bxcn.com", "cappma.com", "cartelcn.com", "cashfiesta", "cg160.com", "cgy.cn", "changpian.com", "chinabamboonet.com", "chinabidding.com.cn", "chinaesteel.com.cn", "chinamj.com.cn", "chinaour", "chinapharm.com.cn", "chinascrap.com", "clean-info.com", "cn5000.com", "cn61.net", "cnbt.com.cn", "cnfee.com", "cnflw.com", "cnfurnace.net", "cnli.net", "cntra.com", "cpbbs.net", "da001.com", "dj800", "e-marketing.net.cn", "ec51.com", "eck.com.cn", "elibaba.net", "fa lun", "feitianlight.com", "foodqs.com", "gbele.com", "gkw.com.cn", "gs114.cn", "gz001.com", "hardwareol.net", "hblbet.com", "hc360.com", "hcgroup.com", "hotexport.com", "huiduo.net.cn", "imageengine.com.cn", "jctis.com", "jdztaoci.com", "jxbx.com", "minghui", "mymai.com", "nc365.com", "nc365.net", "nic2000", "nyto.cn", "okws.com", "packbuy.com", "pcsohu.com", "pointsmoney", "qm365.com", "qyfw.com", "ra36.com", "res168.net", "script", "sie.cn", "tearen.com", "tongzhuang.net", "tpage.com", "tpage.net.cn", "tradenet.cn", "uuxx.net", "video.com.cn", "wltools.net", "www.123trading.com", "www.3536", "www.51wj", "www.5322", "www.5322.com", "www.Ecplaza", "www.Globalsources.com", "www.TradeEasy.com", "www.btob", "www.bx727.com", "www.cartelcn", "www.ce.net.cn", "www.chinaccm.com", "www.cn818", "www.easyeb.com", "www.hardwaretoday", "www.made-in-china.com", "www.mmmn.net", "www.mysc.cn", "www.nc365", "www.sinobnet.com", "www.sparkice.com.cn", "www.tracq.net", "www.wto1.net", "xichi.net", "yicou.com", "yjtx.com", "yujie.cn", "zapbao.com", "zhibei.com", "zhun.net", "zj555.com", "zzlm.com", "５３２２.com", "５３２２．ｃｏｍ", "５８２２.com", "５８２２．com", "５８７７.com", "阿德采购网", "罢工", "百姓数据网", "包装采购网", "宝石网", "本溪727", "博亿网", "采购网站", "成信商网", "诚商网", "诚信商网", "诚信商务网", "诚信网", "达赖", "大法", "大法弟子", "代开", "代开发票", "电炉商情网", "东突", "独立", "发抡", "发轮", "发轮功", "发伦", "发仑", "发沦", "发囵", "法抡", "法轮", "法轮大法", "法轮功", "法伦", "法仑", "法纶", "法囵", "反革命", "分裂", "分裂中国", "工控网", "共匪", "硅产品交易网", "国际净化设备信息网", "国际童装网", "合金材料网", "洪志", "宏志", "华南商贸资源", "环球机电网", "环球汽摩资源", "环球资源", "慧聪商务网", "慧聪网", "混蛋", "机械设备网", "家电商网", "建网通", "建站", "建站通", "江八点", "江八条", "江独裁", "疆独", "景德镇陶瓷论坛", "静坐", "李洪志", "李宏志", "流氓", "六合彩", "六四", "吕秀莲", "轮功", "买麦网", "买卖网", "免费查看采购信息", "南昌市 沿江中路", "内衣网", "内衣资讯网", "农博网", "骗", "迫害", "全球采购网站", "全球制造网", "三陪", "色情", "商贸网", "商网客户部李小琴", "商网客户部章丽", "商务网", "商务网站", "商业网站", "上当", "食品产业网", "实华开", "示威", "死", "搜捕网", "搜狐商贸机会", "搜索引擎", "台湾独立", "唐山二手网", "突厥斯坦", "万商(中国)供求网", "万商供求网", "王八蛋", "网络交易", "网络推广", "网站一夜成名", "温岭工具网", "温州塑料网", "五金网站", "五金在线", "西部创业网", "西藏独立", "西单墙", "新闻封锁", "信息平台", "行业网站", "旋转接头网", "压迫", "一边一国", "一中一台", "易贸通", "淫秽", "游行", "造反", "浙江日用品网", "真善忍", "镇压", "正法", "政变", "政治风波", "政治运动", "支那猪", "中关村电脑报价网", "中硅网", "中国采购与招标网", "中国出口企业网", "中国出口商品网", "中国打火机信息网", "中国电池网", "中国儿童用品网", "中国福利网", "中国工艺品交易网", "中国工艺网", "中国国际加工网", "中国国际加工网", "中国金属废料网", "中国旅游网", "中国民用品网", "中国名茶网", "中国品牌交易网", "中国企商", "中国全自动麻将机网", "中国蔬菜网", "中国药网", "中国渔网", "中国针织网", "中国制造网", "中国竹网", "中华创业网", "中华商务网", "中企网", "自焚", "自由运动", "嫖娼");
    for (var k = 0; k < wordsArrays.length; k++) {
        var wordLowerCase = wordsArrays[k].toLowerCase();
        if (content.indexOf(wordLowerCase) != -1) {
            return wordsArrays[k];
        }
    }
    return "";
}

function isNumberContinue(str) {
    var patn1 = /^[0-9_]+$/;
    var ascendNumber = 0;
    var descendNumber = 0;
    for (var i = 1; i < str.length; i++) {
        if (str.charAt(i).charCodeAt() != (str.charAt(i - 1).charCodeAt() + 1)) {
            ascendNumber = 1;
            break;
        }
    }
    for (i = 0; i < (str.length - 1); i++) {
        if (str.charAt(i).charCodeAt() != (str.charAt(i + 1).charCodeAt() + 1)) {
            descendNumber = 1;
            break;
        }
    }
    if (descendNumber == 0 || ascendNumber == 0) {
        return 1;
    } else {
        return 0;
    }
}

function isSameLetter(str) {
    var sameNumberFlag = 1;
    var patn1 = /^[0-9]+$/;
    if (patn1.test(str)) {
        for (var i = 0; i < str.length; i++) {
            if (str.charAt(0) != str.charAt(i)) {
                sameNumberFlag = 0;
                break;
            }
        }
    } else {
        for (var i = 0; i < str.length; i++) {
            if (str.charAt(0) != str.charAt(i)) {
                sameNumberFlag = 0;
                break;
            }
        }
    }
    return sameNumberFlag;
}

String.prototype.trim = function() {
    return this.replace(/(^\s*)|(\s*$)/g, "");
}

function validateUsername(obj) {
    var str = obj.value;
    var patn = /^[a-zA-Z]+[a-zA-Z0-9]+$/;
    if (!checkByteLength(str, 4, 20)) return 1;
    if (!patn.test(str)) {
        return 1;
    }
    return 0;
}

function validatePassword(obj) {
    var str = obj.value;
    if (!checkByteLength(str, 6, 20)) return 1;
    var patn1 = /^[a-zA-Z0-9]+$/;
    if (!patn1.test(str)) return 1;
    var v = validatePasswordSafe();
    return v ? v + 1 : 0;
}

function validatePasswordSafe() {
    var password = document.getElementById("txtPassword").value;
    var passwordLowcase = password.toLowerCase();
    var loginid = document.getElementById("txtEmail").value;
//    /******* 新加验证开始 ********/
//    //密码与登录名
//    if (loginid) {
//        var loginidLowcase = loginid.toLowerCase();
//        if (passwordLowcase == loginidLowcase) return 2;
//        if (loginidLowcase.indexOf(passwordLowcase) != -1) return 3;
//        if (passwordLowcase.indexOf(loginidLowcase) != -1) return 4;
//    }
//    var firstName = document.getElementById("txtRealName").value;
//    if (firstName != '' && passwordLowcase.indexOf(firstName.toLowerCase()) != -1) return 5;
//    var az = 'abcdefghijklmnopqrstuvwxyz';
//    //连续的数字
//    if ('0123456789'.indexOf(passwordLowcase) > -1 || '9876543210'.indexOf(passwordLowcase) > -1) return 6;
//    //连续的大写字母
//    if (password.toUpperCase() == password && (az.indexOf(passwordLowcase) > -1 || az.indexOf(passwordLowcase.split('').reverse().join('')) > -1)) return 7;
//    //连续的小写字母
//    if (passwordLowcase == password && (az.indexOf(passwordLowcase) > -1 || az.indexOf(passwordLowcase.split('').reverse().join('')) > -1)) return 8;
//    //相同的数字
//    if (/^(\d)\1+$/.test(passwordLowcase)) return 9;
//    //相同的字母
//    if (/^([a-zA-Z])\1+$/.test(passwordLowcase)) return 10;
//    //密码与邮箱相同
//    var email = document.getElementById("txtEmail").value;
//    var emailIndexer = email.indexOf('@');
//    if (emailIndexer != -1) {
//        var emailHeader = email.substring(0, emailIndexer).toLowerCase();
//        if (passwordLowcase == emailHeader) return 11;
//    }
//    if (isEqual("txtPassword", "txtPhone") == 1) return 12;
//    //    if (isEqual("txtPassword", "phone_number") == 1) return 13;
//    //    if (isEqual("txtPassword", "fax_number") == 1) return 14;
//    //为password
//    if (passwordLowcase == 'txtPassword') return 15;
//    /******* 新加验证结束 ********/
//    if (loginid != '') {
//        var loginidLowcase = loginid.toLowerCase();
//        if (passwordLowcase.indexOf(loginidLowcase) != -1 || loginidLowcase.indexOf(passwordLowcase) != -1) {
//            return 1;
//        }
//    }
//    if (passwordLowcase.indexOf('password') != -1) {
//        return 1;
//    }
//    var firstName = document.getElementById("txtRealName").value;
//    if (firstName != '' && passwordLowcase.indexOf(firstName.toLowerCase()) != -1) {
//        return 1;
//    }
//    if (isNumberContinue(password) == 1) {
//        return 1;
//    }
//    if (isSameLetter(password) == 1) {
//        return 1;
//    }
//    var patn = /[a-zA-Z0-9]+$/;
//    if (!patn.test(password)) {
//        return 1;
//    }
//    var email = document.getElementById("txtEmail").value;
//    var emailIndexer = email.indexOf('@');
//    if (emailIndexer != -1) {
//        var emailHeader = email.substring(0, emailIndexer).toLowerCase();
//        if (passwordLowcase == emailHeader) {
//            return 1;
//        }
//    } else {
//    }
//    if (isEqual("txtPassword", "txtPhone") == 1) {
//        return 1;
//    }
    //    if (isEqual("txtPassword", "mobile") == 1) {
    //        return 1;
    //    }
    //    if (isEqual("txtPassword", "fax_number") == 1) {
    //        return 1;
    //    }
    return 0;
}

function validateSafePassword(obj) {
    var str = obj.value;
    if (str != document.getElementById("txtPassword").value) return 1;
    return 0;
}

function validateFirstName(obj) {
    var str = obj.value;
    if (str.length > 32) {
        return 1;
    }
    if (str.length == 0) {
        return -1;
    }
    if (checkDenyWords(str) != "") {
        return 2;
    }
    //姓名里含有特殊字符
    for (var i = 0, a = '@#$%'.split(''), len = a.length; i < len; i++) {
        if (str.indexOf(a[i]) > -1) return 3;
    }
    return 0;
}

function validateEmail(obj) {
    var str = obj.value;
    if (!checkByteLength(str, 1, 50)) return 1;
    var patn = /^[_a-zA-Z0-9\-]+(\.[_a-zA-Z0-9\-]*)*@[a-zA-Z0-9\-]+([\.][a-zA-Z0-9\-]+)+$/;
    if (!patn.test(str)) {
        return 1; //incorrect format
    }
    return 0;
}

function validateCompany(obj) {
    var str = obj.value;
    if (str.length > 50) {
        return 1;
    }
    if (str.length == 0) {
        return -1;
    }
    if (checkDenyWords(str) != "") {
        return 2;
    }
    //公司名称里好友特殊字符
    for (var i = 0, a = '@#$%'.split(''), len = a.length; i < len; i++) {
        if (str.indexOf(a[i]) > -1) return 3;
    }
    if (str && /^\d+$/.test(str)) return 4;
    return 0;
}

function validateMobile(obj) {
    var str1 = obj.value;
    var str = tot(str1);
    obj.value = str;
    if (str.length > 16) {
        return 1;
    }
    if (str.length == 0) {
        return -1;
    }
    var patn = /^[0-9]+$/;
    if (patn.test(str)) return 0;
    return 2;
}

function validateAddress(obj) {
    var str = obj.value;
    if (str.length > 80) {
        return 1;
    }
    if (str.length == 0) {
        return -1;
    }
    return 0;
}

function validateCountry(obj) {
    var str = obj.value;
    if (str.length == 0) {
        return 1;
    }
    return 0;
}

function validateValidateCode(obj) {
    var str1 = obj.value;
    var str = tot(str1);
    obj.value = str;
    if (str.length != 6) {
        return 1;
    }
    var patn = /^[0-9]+$/;
    if (patn.test(str)) return 0;
    return 1;
}

function CheckUserName(obj) {
    document.getElementById(eval(obj.id).i).innerHTML = "checking, please wait for a moment...";
    document.getElementById(eval(obj.id).i).className = infoboxWarningClass;

    WebRequestInfo("/WebServices/MyService.svc/CheckUsername", function(objResult) { CheckUserNameHandle(objResult, obj); }, JSON.stringify(obj.value));
}

function CheckUserNameHandle(objResult, obj) {
    if (objResult) {
        var result = JSON.parse(objResult);

        if (result == "true") {
            if (obj.id) {
                //                sendFieldclick(obj);
                if (eval(obj.id).i && document.getElementById(eval(obj.id).i))
                    document.getElementById(eval(obj.id).i).className = infoboxErrorClass;
                document.getElementById(eval(obj.id).i).innerHTML = (eval(obj.id).e)[2];
            }
            removeDraw(obj);
        }
        else {
            addDraw(obj);
            document.getElementById(eval(obj.id).i).className = infoboxOk2Class;
            document.getElementById(eval(obj.id).i).innerHTML = (eval(obj.id).e)[3];
        }
    }
}

function CheckEmail(obj) {
    document.getElementById(eval(obj.id).i).innerHTML = "checking, please wait for a moment...";
    document.getElementById(eval(obj.id).i).className = infoboxWarningClass;

    WebRequestInfo("/WebServices/MyService.svc/CheckEmail", function(objResult) { CheckEmailHandle(objResult, obj); }, JSON.stringify(obj.value));
}

function CheckEmailHandle(objResult, obj) {
    if (objResult) {
        var result = JSON.parse(objResult);

        if (result == "true") {
            if (obj.id) {
                if (eval(obj.id).i && document.getElementById(eval(obj.id).i))
                    document.getElementById(eval(obj.id).i).className = infoboxErrorClass;
                document.getElementById(eval(obj.id).i).innerHTML = (eval(obj.id).e)[2]; ;
            }
            removeDraw(obj);
        }
        else {
            addDraw(obj);
            document.getElementById(eval(obj.id).i).className = infoboxOk2Class;
            document.getElementById(eval(obj.id).i).innerHTML = (eval(obj.id).e)[3]; ;
        }
    }
}

function isRequired(obj) {
    //alert((obj.id).r);
    if (obj.id) {
        if (eval(obj.id).r) return eval(obj.id).r;
    }
    return false;
}

function showStatus(obj, stat) {
    switch (stat) {
        case "Warning":
            obj.className = infoboxHintClass;
            break;
        case "Error":
            obj.className = infoboxErrorClass;
            break;
        case "Ok":
            obj.className = infoboxOkClass;
            break;
        default:
            obj.className = infoboxHintClass;
            break;
    }
}

function validateAll(formObj) {
    var obj, infobox, pass;
    pass = true;
    var x = formObj;
    if (!x) return;
    var y = x.getElementsByTagName("input");
    for (var i = 0; i < y.length; i++) {
        if (y[i].type == "text" || y[i].type == "password") {
            obj = y[i];
            obj.value = obj.value.trim();
            infobox = getInfobox(y[i]);
            if (obj.type == 'text' || obj.type == 'password') {
                if (isRequired(obj) && obj.value == "") {
                    pass = false;
                    obj.parentNode.focus(); //提交出错时定位
                    //                    showStatus(obj, "Error");
                    infobox.className = infoboxErrorClass;
                    infobox.innerHTML = requireErrorInfo;
                    removeDraw(obj);
                    continue;
                }
                if (validateValue(obj) > 0) {
                    pass = false;
                    obj.parentNode.focus(); //提交出错时定位
                    //                    showStatus(obj, "Error");
                    showInfo(obj, validateValue(obj), true);
                    removeDraw(obj);
                    continue;
                }
                if (obj.id == 'txtPassword') {
                    if (validatePasswordSafe() > 0 && validateValue(obj) == 0) {
                        pass = false;
                        removeDraw(obj);
                        showInfo(obj, 2, true);
                        document.getElementById(eval(obj.id).i).focus();
                        continue;
                    }
                }
                if (validateValue(obj) == 0) {
                    continue;
                }
            }
        }
    }

    if (document.getElementById("txtEmail_info").className == infoboxErrorClass) {
        document.getElementById("txtEmail").focus();
        pass = false;
    }
//    if (document.getElementById("txtUsername_info").className == infoboxErrorClass) {
//        document.getElementById("txtUsername").focus();
//        pass = false;
//    }
//    else if (document.getElementById("txtEmail_info").className == infoboxErrorClass) {
//        document.getElementById("txtEmail").focus();
//        pass = false;
//    }
//    if (document.getElementById("hidCountry").value == "") {
//        document.getElementById("ddlProvince_info").className = infoboxErrorClass;
//        document.getElementById("ddlProvince_info").innerHTML = requireErrorInfo;
//        pass = false;
//    }

    return pass;
}

function submitForm(obj) {
    var ret = validateAll(obj);
    return ret;
}

$(document).ready(function() {
    initForm();
});