﻿//将字符窜转换为对象
function decode(json) {
    return eval("(" + json + ")");
}

//回车事件
function SubmitKeyOnClick(hid, evt) {
    //$("#form1").attr("onsubmit", "return false;");  //firefox屏蔽提交事件(但是其它的提交事情也都被屏蔽了),text文本框按回车键不触发submit事件的问题(IE),使用两个text文本框
    //evt=event?event:(window.event?window.event:null);
    var keyCode = evt.which != undefined ? evt.which : evt.keyCode;  //firefox是evt.which,ie是evt.keyCode
    if (keyCode == 13) {
        evt.returnValue = false;  //ie必须的,否则会刷新页面
        //document.getElementById(hid).click();  //ie,firefox的方法不一样。ie是click(),firefox是onclick();
        $("#" + hid).click();
    }
}

//添加cookie
function addCookie(objName, objValue, objHours) {
    var str = objName + "=" + escape(objValue);
    if (objHours > 0) {
        //为0时不设定过期时间，浏览器关闭时cookie自动消失
        var date = new Date();
        var ms = objHours * 3600 * 1000;
        date.setTime(date.getTime() + ms);
        str += "; expires=" + date.toGMTString();
    }
    document.cookie = str;
    //alert("添加cookie成功");
}

//获取指定名称的cookie的值
function getCookie(objName) {
    var arrStr = document.cookie.split("; ");
    var temp = null;
    for (var i = 0; i < arrStr.length; i++) {
        var arrTemp = arrStr[i].split("=");
        for (var j = 0; j < arrTemp.length; j++) {
            if (arrTemp[j] == objName) {
                return unescape(arrTemp[j + 1]);
                break;
            }
        }
    }
    return temp;
}

//为了删除指定名称的cookie，可以将其过期时间设定为一个过去的时间
function delCookie(name) {
    var date = new Date();
    date.setTime(date.getTime() - 10000);
    document.cookie = name + "=a; expires=" + date.toGMTString();
}

//读取所有保存的cookie字符串
function GetAllCookie() {
    var str = document.cookie;
    if (str == "") {
        str = "没有保存任何cookie";
    }
    alert(str);
}

function $value(m, n) {
    return document.forms[m].elements[n].value;
}

//控制菜单展开隐藏
function SetMenuVisible(hid) {
    if ($("#" + hid).is(":hidden")) {
        $("#" + hid).slideDown(300);
    } else {
        $("#" + hid).slideUp(300);
    }
}

//记住登录前的地址
function AddLoginUrl() {
    addCookie("PreLoginUrl", document.URL, 10);
}

//获取登录前的地址
function GetPreLoginUrl() {
    getCookie("PreLoginUrl");
}

//跳转到登录前的地址
function GoPreLoginUrl() {
    var url = getCookie("PreLoginUrl");
    if (url != null && url != undefined) {
        window.location.href = getCookie("PreLoginUrl");
    }
}

//全选复选框
function SelecteAllInput() {
    var ck = document.getElementsByTagName("INPUT");
    var cbChoiceAll = document.getElementById("cbChoiceAll");
    if (cbChoiceAll.checked) {
        for (i = 0; i < ck.length; i++) {
            if (ck[i].type == "checkbox") {
                ck[i].checked = true;
            }
        }
    }
    else {
        for (i = 0; i < ck.length; i++) {
            if (ck[i].type == "checkbox") {
                ck[i].checked = false;
            }
        }
    }
}

//全选复选框
function SelectAllByTagNameForm(obj) {
    var aspnetForm = document.getElementsByTagName("form1");
    if (aspnetForm.SelectID != null) {
        if (aspnetForm.SelectID.length == null) {
            aspnetForm.SelectID.checked = obj.checked;
        }
        else {
            for (i = 0; i < aspnetForm.SelectID.length; i++) {
                if (aspnetForm.SelectID[i].checked != obj.checked) {
                    aspnetForm.SelectID[i].checked = obj.checked;
                }
            }
        }
    }
}

//checkbox利用input的name属性全选
function SelectBoxAllByName(cbChoiceAll, name) {
    //$("#" + cbChoiceAll).prop("checked") 返回true, $("#" + cbChoiceAll).attr("checked")返回string"checked";
    //if(document.getElementById(cbChoiceAll).checked)
    if ($("#" + cbChoiceAll).prop("checked")) {
        $("input[name*='" + name + "']").attr("checked", 'true');  //全选
    }
    else {
        //$("input[name*='" + name + "']").attr("checked",'');  //取消全选
        $("input[name*='" + name + "']").removeAttr("checked");  //取消全选
    }
}

//checkbox利用input的type=checkbox属性全选
function SelectBoxAllByTagName() {
    //利用input类型
    if (this.checked) {
        $("input[type='checkbox']").attr("checked", 'true'); //全选
    }
    else {
        $("input[type='checkbox']").attr("checked", ''); //取消全选
    }
}

//检查是否选择了复选框
function CheckSelected() {
    var checked = false;
    var ck = document.getElementsByTagName("INPUT");
    for (i = 0; i < ck.length; i++) {
        if (ck[i].type == "checkbox") {
            if (ck[i].checked) {
                checked = true;
                break;
            }
        }
    }
    if (checked == false) {
        alert("Please Select At Least One Item");
        return false;
    }
    return true;
}

//获取复选框列表的值
function GetCheckBoxListVal(name) {
    var v = "";
    $("input[name='" + name + "']").each(function () {
        if (this.checked == true) {
            v = v + this.defaultValue + ",";
        }
    });
    return v;
}

//限制图片大小
function DrawImage(ImgD, iwidth, iheight) {
    //参数(图片,允许的宽度,允许的高度)
    var image = new Image();
    image.src = ImgD.src;
    if (image.width > 0 && image.height > 0) {
        if (image.width / image.height >= iwidth / iheight) {
            if (image.width > iwidth) {
                ImgD.width = iwidth;
                ImgD.height = (image.height * iwidth) / image.width;
            } else {
                ImgD.width = image.width;
                ImgD.height = image.height;
            }
        } else {
            if (image.height > iheight) {
                ImgD.height = iheight;
                ImgD.width = (image.width * iheight) / image.height;
            } else {
                ImgD.width = image.width;
                ImgD.height = image.height;
            }
        }
    }
}

//获取QueryString
function getQueryStringRegExp(name) {
    var reg = new RegExp("(^|\\?|&)" + name + "=([^&]*)(\\s|&|$)", "i");
    if (reg.test(location.href)) return unescape(RegExp.$2.replace(/\+/g, " ")); return "";
}

//删除左右两端的空格
function trim(str) { return str.replace(/(^\s*)|(\s*$)/g, ""); }

//删除左边的空格
function ltrim(str) { return str.replace(/(^\s*)/g, ""); }

//删除右边的空格
function rtrim(str) { return str.replace(/(\s*$)/g, ""); }

//删除左边的字符
function DelLTrim(str, c) { if (str.substring(0, 1) == c) { return str.substring(1, str.length); } return str; }

//删除右边的字符
function DelRTrim(str, c) { if (str.substring(str.length - 1, str.length) == c) { return str.substring(0, str.length - 1); } return str }

//判断字符串是否为数字(正则表达式方法)
function CheckIsNum(Num) {
    //var vArr = Num.match(/^[0-9]+$/);  //查找字符中的数字
    var str = /^[0-9]*$/;
    return str.test(Num);
}

//判断是否为数字(普通函数写法)
function BASEisNotNum(theNum) {
    if (BASEtrim(theNum) == "")
        return true;
    for (var i = 0; i < theNum.length; i++) {
        oneNum = theNum.substring(i, i + 1);
        if (oneNum < "0" || oneNum > "9")
            return true;
    }
    return false;
}

//判断是否为整数
function BASEisNotInt(theInt) {
    theInt = BASEtrim(theInt);
    if ((theInt.length > 1 && theInt.substring(0, 1) == "0") || BASEisNotNum(theInt)) {
        return true;
    }
    return false;
}

//判断是否为整数
function CheckIsInt(theInt) {
    if (CheckIsNum(theInt)) {
        if (Math.abs(theInt) == theInt) {
            return true;
        }
        return false;
    }
    return false;
}

//判断是否为浮点数
function BASEisNotFloat(theFloat) {
    len = theFloat.length;
    dotNum = 0;
    if (len == 0)
        return true;
    for (var i = 0; i < len; i++) {
        oneNum = theFloat.substring(i, i + 1);
        if (oneNum == ".")
            dotNum++;
        if (((oneNum < "0" || oneNum > "9") && oneNum != ".") || dotNum > 1)
            return true;
    }
    if (len > 1 && theFloat.substring(0, 1) == "0") {
        if (theFloat.substring(1, 2) != ".")
            return true;
    }
    return false;
}

//检测字符
function isReg(str) {
    var re = /^[0-9a-z \u4e00-\u9fa5]+$/gi;
    return re.test(str);
}

//事件触发标签显示隐藏
function SelectPage(selfObj, att, TagsId, HeadAtt, cssName) {
    var tag = document.getElementById(TagsId).getElementsByTagName("a");
    var taglength = tag.length;
    for (i = 0; i < taglength; i++) {
        tag[i].className = "";
    }
    selfObj.className = cssName;
    for (i = 0; i < taglength; i++) {
        document.getElementById(HeadAtt + i).style.display = "none";
    }
    document.getElementById(HeadAtt + att).style.display = "block";
}

//事件触发标签显示隐藏
function SelectPageA(p, TagsId, cssName) {
    $("#" + TagsId + " a").removeClass(cssName);
    $("#" + TagsId + " a").eq(p).addClass(cssName);
    $("[name='" + TagsId + "']").css("display", "none");
    $("[name='" + TagsId + "']").eq(p).css("display", "block");

    //var oEvent = oEvent ? oEvent : window.event;
    //var oElem = oEvent.toElement ? oEvent.toElement : oEvent.relatedTarget; //此做法是为了兼容FF浏览器
    //alert(oElem.id);  //当鼠标移出Div1时，会弹出提示框提示鼠标移动到的另一个元素的ID
}

//事件触发标签显示隐藏
function SelectPageLi(p, TagsId, cssName) {
    $("#" + TagsId + " li").removeClass(cssName);
    $("#" + TagsId + " li").eq(p).addClass(cssName);
    $("[name='" + TagsId + "']").css("display", "none");
    $("[name='" + TagsId + "']").eq(p).css("display", "block");
}

function CheckFileExt(FileName) { 

}





//------------------------------私有的方法---------------------
//登录
function LoginModer() {
    tb_show("User Login", "/WinModer/Login.aspx?&width=610&height=235&modal=true&URL=" + encodeURIComponent(document.URL), "thickbox"); //调用thickbox之必需
}

function CheckLogined() {
    if ($("#header1_Loginer").length > 0) {
        AddLoginUrl();
        LoginModer();
        return false;
    }
}

//保存临时跳转页面网址
function SetSkipUrl(url) {
    if (url == "" || url == null) { url = document.URL; }
    addCookie("GEPreSkipUrl", url, 10);
}

//获取跳转页面网址
function GetSkipUrl() {
    var SkipUrl = getCookie("GEPreSkipUrl");

    if (SkipUrl == null) {
        SkipUrl = "http://www.games-engine.com/";
    }
    return SkipUrl;
}

//页面跳转
function GoSkipUrl() {
    var SkipUrl = getCookie("GEPreSkipUrl");

    if (SkipUrl != null && SkipUrl != undefined) {
        SkipUrl = "http://www.games-engine.com/";
    }
    window.location.href = SkipUrl;
}


//修正网页表情的路径
function CheckImg() {
    $("img[src^='emote/']").attr("src", "/forums/" + $("img[src^='emote/']").attr("src"));
    //alert($("img[src^='emote/']").attr("src"));
}

function doAgree(Rid) {
    $.get("/jAjax/doAgree.ashx", { id: Rid },
    function (data) {
        if (data == "true") {
            $("#spAgree" + Rid).html(Number($("#spAgree" + Rid).html()) + 1);
            $("#aAgree" + Rid).addClass("up_comment_no");
        }
    });
}

function doDisAgree(Rid) {
    $.get("/jAjax/doDisAgree.ashx", { id: Rid },
    function (data) {
        if (data == "true") {
            $("#spDisAgree" + Rid).html(Number($("#spDisAgree" + Rid).html()) + 1);
            $("#aDisAgree" + Rid).addClass("down_comment_no");
        }
    });
}

