﻿//常量
var ConstData = {};
//样式
ConstData.Style = {};
ConstData.Style.TextInputStyleName = "textInputStyle";
//符号
ConstData.Sign = {};
ConstData.Sign.Connector = "-";
ConstData.Sign.Group = ";";
ConstData.Sign.Single = ",";
ConstData.Sign.Multiple = "|";
ConstData.Sign.Intervals = ["\n"];
ConstData.Sign.Line = "\n";
ConstData.Sign.Empty = "-";
//消息
ConstData.Message = {};
ConstData.Message.InvokeServerMethodError = "调用服务端方法错误";
ConstData.Message.InvokeClientMethodError = "调用客户端方法错误";
ConstData.Message.NumberFormError = "号码格式错误";
ConstData.Message.GetErrorMessage = function (paraErrorCode)
{
    switch (paraErrorCode)
    {
        case "-2":
            return "由于您长时间未与服务器进行交互，为保障您的帐户安全，系统已自动注销您的帐户，请重新登录";
        case "-3":
            return "您还没有选择商品，请选择后再进行购买";
        case "-100":
            return "网银支付失败，请重新付款";
        case "-101":
            return "您提交的期号不正确";
        case "-102":
            return "对不起，目前尚未开放该彩种的购买功能";
        case "-103":
            return "您提交的倍数不正确";
        case "-104":
        case "406":
            return "您提交的号码格式不正确";
        case "-105":
        case "404":
            return "您提交的号码金额不正确";
        case "-106":
        case "403":
            return "您提交的号码注数不正确";
        case "-107":
        case "405":
            return "您提交的号码类型不正确";
        case "-108":
            return "对不起，目前还不支持以此种购买方式进行购彩";
        case "-109":
            return "您输入的注数与上传的注数不一致，请重新输入";
        case "-110":
            return "您提交的总金额不正确";
        case "-201":
            return "您输入的验证码与图片中的不一致，请重新输入";
        case "-6":
            return "页面已过期";
        case "100":
            return "对不起，您提交的帐号已被使用，请重新输入";
        case "101":
            return "对不起，您提交的电子邮箱已被使用，请重新输入";
        case "200":
            return "该帐号不存在或密码错误，请重新输入";
        case "201":
            return "您的帐号已被冻结";
        case "202":
            return "您的帐号已经过期";
        case "400":
            return "对不起，您的帐号余额不足";
        case "401":
            return "您提交的投注信息不正确";
        case "504":
            return "对不起，您参与的合买方案已满员";
        case "800":
            return "对不起，网站接口正在维护中，请稍后重试";
        case "900":
            return "您的身份验证失败";
        case "990":
            return "对不起，用户中心正在维护中，请稍后重试";
        case "-1":
        case "901":
        case "902":
        case "999":
            return "对不起，网站正在维护中，请稍后重试";
        default:
            return "未定义的错误消息";
    }
}

ConstData.UserCenter = {};
ConstData.UserCenter.Address = "";

//获取元素在数组中的索引
function GetArrayIndex(value, array)
{
    if (array == null)
        return -1;

    for (var i = 0; i < array.length; i++)
    {
        if (Trim(array[i]) == Trim(value))
            return i;
    }
    return -1;
}

//去除字符串首尾的空格
function Trim(value)
{
    if (value == null || typeof (value) != "string")
        return value;
    return value.replace(/(^\s*)|(\s*$)/g, "");
}

//移除空格
function RemoveAllBlankSpace(paraInput)
{
    if (paraInput == null)
        return paraInput;

    var output = "";
    for (var i = 0; i < paraInput.length; i++)
    {
        output += $.trim(paraInput.charAt(i));
    }
    return output;
}

//作为sort()方法参数
function SortNumber(a, b)
{
    return a - b
}

//刷新验证码
function RefreshAuthCode(paraAuthImageName)
{
    $("img[id^=img][id*=AuthCode]").each(function ()
    {
        if ($(this).attr("name") != paraAuthImageName)
        {
            $(this).attr("src", "/AuthCode.aspx?ref=" + new Date().getTime());
            return;
        }
    });
}

//计算排列
function CalcPermutation(paraN, paraR)
{
    if (paraN < paraR || paraR <= 0)
        return 0;
    return CalcFactorial(paraN) / CalcFactorial(paraN - paraR);
}

//计算组合
function CalcCombination(paraN, paraR)
{
    if (paraN < paraR || paraR <= 0)
        return 0;
    return CalcPermutation(paraN, paraR) / CalcFactorial(paraR);
}

//生成组合
function BuildCombination(paraCollections, paraR, paraSign, paraIndex, paraPreCombinatins, paraCombinations)
{
    if (paraCollections == null || paraCollections.length < paraR || paraR == null || paraR < 1 || paraSign == null ||
        paraIndex == null || paraIndex < 0 || paraPreCombinatins == null || paraCombinations == null)
        return false;

    var pre_combination = "";

    for (var i = paraIndex; i < paraCollections.length; i++)
    {
        if (paraPreCombinatins.length >= paraR - 1)
        {
            if (pre_combination.length < 1)
            {
                for (var j = 0; j < paraPreCombinatins.length; j++)
                {
                    pre_combination += paraPreCombinatins[j];
                    if (pre_combination.length > 0)
                        pre_combination += paraSign;
                }
            }
            paraCombinations.push(pre_combination + paraCollections[i]);
        }
        else
        {
            if (paraCollections.length - 1 == i)
                break;

            paraPreCombinatins.push(paraCollections[i]);

            if (!BuildCombination(paraCollections, paraR, paraSign, i + 1, paraPreCombinatins, paraCombinations))
                return false;
        }
    }

    if (paraPreCombinatins.length > 0)
        paraPreCombinatins.splice(paraPreCombinatins.length - 1, 1);

    return true;
}

//计算阶乘
function CalcFactorial(paraNum)
{
    if (paraNum <= 1)
        return 1;
    return paraNum * CalcFactorial(paraNum - 1);
}

function FormatMoney(paraMoney)
{
    return fmoney(paraMoney, 2);
}
function fmoney(s, n)
{
    n = n > 0 && n <= 20 ? n : 2;
    s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";
    var l = s.split(".")[0].split("").reverse();
    r = s.split(".")[1];
    t = "";
    for (i = 0; i < l.length; i++)
    {
        t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : "");
    }
    return t.split("").reverse().join("") + "." + r;
}

function setTab(name, cursel, n)
{
    for (i = 1; i <= n; i++)
    {
        var menu = document.getElementById(name + i);
        var con = document.getElementById("con_" + name + "_" + i);
        menu.className = i == cursel ? "hover" : "";
        con.style.display = i == cursel ? "block" : "none";
    }
}

function CutoverMajorMenu(paraMajorMenuID)
{
    var header_frame = document.getElementById('header_frame');
    if (header_frame.attachEvent)
    {
        header_frame.attachEvent("onload", function ()
        {
            //window.frames["header_frame"].document
            $(header_frame.contentWindow.document).find("#" + paraMajorMenuID).addClass("hover");
        });
    }
    else
    {
        header_frame.onload = function ()
        {
            $(header_frame.contentWindow.document).find("#" + paraMajorMenuID).addClass("hover");
        };
    }
    $(header_frame.contentWindow.document).find("#" + paraMajorMenuID).addClass("hover");
}
