﻿/// <reference name="MicrosoftAjax.js"/>
/// <reference path="../ND.JSDK/NDJDK_intellisense.js" />

var question = new Array("您最喜欢的游戏是什么？", "您的小学学校的名字是什么？", "您身份证号码最后五位是什么？", "您的手机号码最后五位是什么？", "自定义密保问题");

var AlertTitle = "18183.com提示您"; //弹出标题提示

//异常处理方法
function onFailed(error)
{
    if (error.get_timedOut())
    {
        window.alert("请求已经超时,请重试!");
        return;
    }
    else
    {
        var exceptionType = error.get_exceptionType();
        if (exceptionType == "ND.Framework.InputException")
        {
            //   UserCenterAlertTitle(error.get_message(),"18183.com提示您");
            //  window.alert(error.get_message());
            _window.Alert(error.get_message(), AlertTitle, "width=300,height=120");
        }
        else
        {
            NDJS.$.ajax({
                type: "get",
                url: String.format("{0}App_Service/ReportError.ashx?msg={1}&url={2}", ROOTURL, escape(error.get_message()), location.href),
                success: function(data, textStatus)
                {
                    if (data != "0")
                    {
                        var message = String.format(
							"很抱歉，发生错误了！</br></br>错误信息：{0}</br>错误类型：{1}</br></br>系统已经将该错误信息记录[记录号:{2}]等待处理。",
							error.get_message(),
							error.get_exceptionType() + "具体信息：" + error.get_stackTrace(),
							data);
                        //window.alert(message);
                        _window.Alert(message, AlertTitle, "width=600,height=450");
                        // UserCenterAlertTitle(message,"18183.com提示您");
                    }
                    else
                    {
                        _window.Alert("对数据库进行操作时发生错误，请告知管理员.", AlertTitle, "width=300,height=120");
                        //alert("对数据库进行操作时发生错误，请告知管理员.");
                        // UserCenterAlertTitle("对数据库进行操作时发生错误，请告知管理员.","18183.com提示您");
                    }
                },
                error: function()
                {
                    // UserCenterAlertTitle("在向服务器提交错误信息时出错，请告知管理员.","18183.com提示您");
                    //						alert("在向服务器提交错误信息时出错，请告知管理员."); 
                    _window.Alert("在向服务器提交错误信息时出错，请告知管理员.", AlertTitle, "width=300,height=120");
                }
            });
        }
    }
}

function onSilverlightError(sender, args)
{
    var appSource = "";
    if (sender != null & sender != 0)
    {
        appSource = sender.getHost().Source;
    }

    var errorType = args.ErrorType;
    var iErrorCode = args.ErrorCode;

    if (errorType == "ImageError" || errorType == "MediaError")
    {
        return;
    }

    var errMsg = "Silverlight 应用程序中未处理的错误" + appSource + "\n";

    errMsg += "代码: " + iErrorCode + "    \n";
    errMsg += "类别: " + errorType + "       \n";
    errMsg += "消息: " + args.ErrorMessage + "     \n";

    if (errorType == "ParserError")
    {
        errMsg += "文件: " + args.xamlFile + "     \n";
        errMsg += "行: " + args.lineNumber + "     \n";
        errMsg += "位置: " + args.charPosition + "     \n";
    }
    else if (errorType == "RuntimeError")
    {
        if (args.lineNumber != 0)
        {
            errMsg += "行: " + args.lineNumber + "     \n";
            errMsg += "位置: " + args.charPosition + "     \n";
        }
        errMsg += "方法名称: " + args.methodName + "     \n";
    }

    _window.Alert(errMsg, AlertTitle, "width=300,height=120");
}

//进度条启动

function Begin()
{
    if (!document.getElementById("processbar_div"))
    {
        var t_span = document.createElement("span");
        t_span.id = "processbar_div";
        t_span.style.position = "absolute";
        t_span.style.backgroundColor = "#ffffba";
        t_span.style.border = "solid 1px #9db3c5";
        t_span.style.right = "25px";
        t_span.style.top = "10px";
        t_span.style.zIndex = 1000;
        t_span.style.fontSize = "12px";
        t_span.style.padding = "2px";
        t_span.innerHTML = "&nbsp;数据加载中...&nbsp;&nbsp;";
        document.body.appendChild(t_span);
    }
    else
    {
        document.getElementById("processbar_div").style.display = "";
        document.getElementById("processbar_div").style.top = document.body.scrollTop + 10;

    }
}

//进度条关闭

function End()
{
    if (document.getElementById("processbar_div"))
    {
        document.getElementById("processbar_div").style.display = "none";
    }
}
//兼容FIREFOX获取obj相对于上边和左边的绝对位置
function getAbsoluteOffsetTop(obj)
{
    var y = obj.offsetTop;
    if (isIE()) return y;

    while (obj = obj.offsetParent)
        y += obj.offsetTop;

    return y + "px";
}

function getAbsoluteOffsetLeft(obj)
{
    var x = obj.offsetLeft;
    if (isIE()) return x; ;

    while (obj = obj.offsetParent)
        x += obj.offsetLeft;

    return x + "px";
}

function isIE()
{
    var sUserAgent = navigator.userAgent;
    var isOpera = sUserAgent.indexOf("Opera") > -1;
    return sUserAgent.indexOf("compatible") > -1 && sUserAgent.indexOf("MSIE") > -1 && !isOpera;
}

//消息提示-开始

function fnShowMsgTip(obj, str)
{
    var divID = "msg_" + obj.id + "";

    if (NDJS.$("#" + divID)[0] == undefined)
    {
        var objDiv = document.createElement("div");
        objDiv.setAttribute("id", "msg_" + obj.id + "");
        objDiv.setAttribute("style", "height: 20px;margin-top: 2px;line-height: 20px;text-indent: 18px;color: #fd4600;");
        objDiv.style.cssText = "height: 20px;margin-top: 2px;line-height: 20px;text-indent: 18px;color: #fd4600;";
        objDiv.innerHTML = "<img src='" + ROOTURL + "Theme/Campus/Images/error.gif' style='vertical-align:middle' />&nbsp;" + str;

        obj.setAttribute("style", "float:left;");
        obj.style.cssText = "float:left;";
        obj.parentNode.appendChild(objDiv);
    }
    else
    {
        NDJS.$("#" + divID)[0].innerHTML = "<img src='" + ROOTURL + "Theme/Campus/Images/error.gif' style='vertical-align:middle' />&nbsp;" + str;
        NDJS.$("#" + divID).show();
    }
}

function fnShowMsgTipNoLeft(obj, str)
{
    var divID = "msg_" + obj.id + "";

    if (NDJS.$("#" + divID)[0] == undefined)
    {
        var left = getAbsoluteOffsetLeft(obj);
        var css = "height: 20px;margin-top: 2px;line-height: 20px;text-indent: 18px;color: #fd4600; padding-left:" + left + "px;";
        var objDiv = document.createElement("div");
        objDiv.setAttribute("id", "msg_" + obj.id + "");
        objDiv.setAttribute("style", css);
        objDiv.style.cssText = css;
        objDiv.innerHTML = "<img src='" + ROOTURL + "Theme/Campus/Images/error.gif' style='vertical-align:middle' />&nbsp;" + str;

        obj.parentNode.appendChild(objDiv);
    }
    else
    {
        NDJS.$("#" + divID)[0].innerHTML = "<img src='" + ROOTURL + "Theme/Campus/Images/error.gif' style='vertical-align:middle' />&nbsp;" + str;
        NDJS.$("#" + divID).show();
    }
}

function fnHideMsgTip(obj)
{
    if ($("#msg_" + obj.id + "")[0] != undefined)
    {
        obj.parentNode.removeChild($("#msg_" + obj.id + "")[0]);
    }
}
//正确显示消息
function fnShowMsgOKImg(obj, str)
{
    var divID = "msg_" + obj.id + "";

    if (NDJS.$("#" + divID)[0] == undefined)
    {
        var objDiv = document.createElement("div");
        objDiv.setAttribute("id", "msg_" + obj.id + "");
        objDiv.setAttribute("style", "height: 20px;margin-top: 2px;line-height: 20px;text-indent: 18px;color: #fd4600;");
        objDiv.style.cssText = "height: 20px;margin-top: 2px;line-height: 20px;text-indent: 18px;color: #fd4600;";
        objDiv.innerHTML = "<img src='" + ROOTURL + "Theme/Campus/Images/pass.gif' style='vertical-align:middle' />&nbsp;" + str;

        obj.setAttribute("style", "float:left;");
        obj.style.cssText = "float:left;";

        obj.parentNode.appendChild(objDiv);
    }
    else
    {
        NDJS.$("#" + divID)[0].innerHTML = "<img src='" + ROOTURL + "Theme/Campus/Images/pass.gif' style='vertical-align:middle' />&nbsp;" + str;
        NDJS.$("#" + divID).show();
    }
}

function fnShowMsgNoImg(obj, str)
{
    var divID = "msg_" + obj.id + "";

    if (NDJS.$("#" + divID)[0] == undefined)
    {
        var objDiv = document.createElement("div");
        objDiv.setAttribute("id", "msg_" + obj.id + "");
        objDiv.setAttribute("style", "height: 20px;margin-top: 2px;line-height: 20px;text-indent: 18px;color: #fd4600;");
        objDiv.style.cssText = "height: 20px;margin-top: 2px;line-height: 20px;text-indent: 18px;color: #fd4600;";
        objDiv.innerHTML = str;

        obj.setAttribute("style", "float:left;");
        obj.style.cssText = "float:left;";
        obj.parentNode.appendChild(objDiv);
    }
    else
    {
        NDJS.$("#" + divID)[0].innerHTML = str;
        NDJS.$("#" + divID).show();
    }
}

function fnShowMsgNoImgNoLeft(obj, str)
{
    var divID = "msg_" + obj.id + "";

    if (NDJS.$("#" + divID)[0] == undefined)
    {
        var objDiv = document.createElement("div");
        objDiv.setAttribute("id", "msg_" + obj.id + "");
        objDiv.setAttribute("style", "height: 20px;margin-top: 2px;line-height: 20px;text-indent: 18px;color: #fd4600;");
        objDiv.style.cssText = "height: 20px;margin-top: 2px;line-height: 20px;text-indent: 18px;color: #fd4600;";
        objDiv.innerHTML = str;

        obj.parentNode.appendChild(objDiv);
    }
    else
    {
        NDJS.$("#" + divID)[0].innerHTML = str;
        NDJS.$("#" + divID).show();
    }
}

//消息提示-结束

//初始化通行证登录信息
function initLogin()
{
    var loginUrl = NDJS.$("#loginSiteUrl").val()
    NDJS.$("#loginFrame").attr("src", loginUrl);
}

function PassportAlert(data)
{
    _window.Alert(data, AlertTitle, "isModal=yes,width=350,height=120");
}

function PassportOpen(data)
{
    _window.Open(data, AlertTitle, "isModal=yes,width=350,height=120");
}
var objNewWin = null;
function UserCenterAlert(data)
{
    objNewWin = _window.Open("[url]" + ALERTHTML + "?" + encodeURI(data), AlertTitle, "isModal=yes,width=350,height=120");
    return objNewWin;
}
function UserCenterAlertTitle(data, title)
{
    objNewWin = _window.Open("[url]" + ALERTHTML + "?" + encodeURI(data), title, "isModal=yes,width=350,height=120");
    return objNewWin;
}

function fnHideText(obj)
{
    if (obj.value == "请输入业务的关键字")
        obj.value = "";
}
function fnShowText(obj)
{
    if (obj.value == "")
        obj.value = "请输入业务的关键字";
}

eventFirefox();
function eventFirefox()
{
    /*firefox重写event事件*/
    function __firefox()
    {
        HTMLElement.prototype.__defineGetter__("runtimeStyle", __element_style);
        window.constructor.prototype.__defineGetter__("event", __window_event);
        Event.prototype.__defineGetter__("srcElement", __event_srcElement);
    }
    function __element_style()
    {
        return this.style;
    }
    function __window_event()
    {
        return __window_event_constructor();
    }
    function __event_srcElement()
    {
        return this.target;
    }
    function __window_event_constructor()
    {
        if (document.all)
        {
            return window.event;
        }
        var _caller = __window_event_constructor.caller;
        while (_caller != null)
        {
            var _argument = _caller.arguments[0];
            if (_argument)
            {
                var _temp = _argument.constructor;
                if (_temp.toString().indexOf("Event") != -1)
                {
                    return _argument;
                }
            }
            _caller = _caller.caller;
        }
        return null;
    }
    if (window.addEventListener)
    {
        __firefox();
    }
    /*end firefox*/
}
//验证字符串
function InputCheck(obj, str)
{
    var value = obj.value;
    obj.focus();
    var bpos = value.length;
    var r = document.selection.createRange();
    var ctr = obj.createTextRange();
    r.setEndPoint("StartToStart", ctr);
    var pos = r.text.length;
    switch (str)
    {
        case 'int': //(数字)
            obj.value = value.replace(/[^\d]/g, '');
            break;
        case 'float': //(数字、小数点)
            obj.value = value.replace(/[^\d\.^\d]/g, '');
            break;
        case 'tel': //(数字、-、+),用于电话
            obj.value = value.replace(/[^\d\-\+]/g, '');
            break;
        case 'date': //(数字、-、:),用于日期
            obj.value = value.replace(/[^\d\-\:]/g, '');
            break;
        case 'chn': //(汉字)
            obj.value = value.replace(/[^\u4E00-\u9FA5]/g, '');
            break;
        case 'name': //(汉字、数字、'('、')')
            obj.value = value.replace(/[^0-9\(\)\u4E00-\u9FA5]/g, '');
            break;
        case 'str': //(汉字、数字、字母)
            obj.value = value.replace(/[^0-9A-Za-z\u4E00-\u9FA5]/g, '');
            break;
        case 'charNum': //(数字、字母)
            obj.value = value.replace(/[^0-9A-Za-z]/g, '');
            break;
        case 'en': //(英文)
            obj.value = value.replace(/[^A-Za-z]/g, '');
            break;
        case 'ech': //(英文、汉字)
            obj.value = value.replace(/[^A-Za-z\u4E00-\u9FA5]/g, '');
            break;

        default:
            break;
    }
    ctr.collapse(true);
    var epos = obj.value.length;
    ctr.moveStart('character', pos + epos - bpos);
    ctr.select();
}
//判断是否整型
function IsInteger(str)
{
    var integer = parseInt(str, 10);
    if (isNaN(integer)) return false;
    else if (integer.toString().length == str.length) return true;
    else return false;
}
//判断用户名合法性
function IsUserName(str)
{
    var sReg = /^[a-z][a-z0-9_]*$/;
    if (!sReg.test(str))
    {
        return false;
    }
    else
    {
        var len = 0;
        var chinalen = 0;
        for (var i = 0; i < str.length; i++)
        {
            len++;
        }
        if ((len > 3 && len < 19))
            return true;
        else
            return false;
    }
}

//判断邮箱合法性
function IsEmail(str)
{
    var sReg = /[_a-zA-Z\d\-\.]+@[_a-zA-Z\d\-]+(\.[_a-zA-Z\d\-]+)+$/;
    if (!sReg.test(str))
    {
        return false;
    }
    else
    {
        return true;
    }
}

//判断是否正确的手机号码
function IsMobileNo(str)
{
    var reg = /^[1]\d{10}$/;
    return reg.test(str);    
}

//判断身份证合法性
function IsCardNo(str)
{
    //var isIDCard1 = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;
    //var isIDCard2 = /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/;
    var isIDCard1 = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{2}\w$/;
    var isIDCard2 = /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}\w$/;

    if (isIDCard1.test(str))
    {
        return true;
    }
    else if (isIDCard2.test(str))
    {
        return true;
    }
    else
    {
        return false;
    }
}
//判断邮编合法性
function IsCardPostCode(str)
{
    var isCardPostCode = /^[0-9]\d{5}$/;

    if (isCardPostCode.test(str))
    {
        return true;
    }
    else
    {
        return false;
    }
}
//按钮禁用
function Disabled(obj)
{
    obj.disabled = "disabled";
    obj.style.color = "#cccccc";
}
//按钮启用
function NoDisabled(obj)
{
    obj.disabled = "";
    obj.style.color = "";
}

function GetChineseDate()
{
    var hour = new Date().getHours();
    if (hour < 6) { return "凌晨" }
    else if (hour < 9) { return "早上" }
    else if (hour < 12) { return "上午" }
    else if (hour < 14) { return "中午" }
    else if (hour < 17) { return "下午" }
    else if (hour < 19) { return "傍晚" }
    else if (hour < 22) { return "晚上" }
    else { return "夜里" };
}

//弹出提示框并跳转
function alertAndGoto(msg, gotoUrl)
{
    var objWin = _window.Alert(msg, "18183.com提示", "width=300,height=120");
    objWin.OnOK = function()
    {
        parent.location.href = gotoUrl;
    }

    objWin.Close = function()
    {
        parent.location.href = gotoUrl;
    }
}